穆客带你快速定位 Node.js 内存泄露
摘要:在 7 月 7 日的云栖 TechDay 活动上,来自阿里云的穆客给大家分享了《如何快速定位
Node.js 内存泄露》话题。此次分享主要包括 Node.js 和 APM 的简单介绍、Node.js 内存管理、
Node.js 内存泄露及其排查过程四个方面。
大家好,我是来自阿里云的穆客,今天分享的是关于 Node.js 方面的故障排查、内存泄露的
话题。
Node.js 和 APM
很多人应该都知道 Node.js,它是一个运行于服务端的基于 Chrome V8 引擎的 JavaScript 运
行环境,Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。Node.js
特别适合于 web 应用或 API 服务器,例如手机上的 APP,如果它的服务器端采用 Node.js 来
搭建,整体的开发效率会提高很多倍,而且也非常适合 IoT 服务端应用。
图一 Node.js 和 APM
同样的任务,用 C 或 C++开发可能需要一个月的时间;采用 Node.js 开发的话,一两天就可
以搭建出原型。因此,对于一些初创型、中小型企业在需要业务快速上线的时候,或者公司
里需要快速做原型验证,如果系统不是特别复杂的时候,Node.js 是非常适合的。即使业务
量上来后,Node.js 也是非常容易扩展的,现在像 Uber/沃尔玛/阿里等规模的企业里面,
Node.js 也获得了很好的应用就能说明一些问题。
应用性能管理(APM),是对企业系统即时监控以实现对应用程序性能管理和故障管理的系
统化的解决方案。APM 的覆盖范围包括五个层次的实现:终端用户体验,应用架构映射,
应用事务分析,深度应用诊断,和数据分析。总结成一句话概括:用一切手段把应用的整个
链路监测起来,将中间的慢路径或热点找出来,进行优化后提高用户的体验。
现在,Node.js 使用已经非常普遍了。在 Github 上搜索的热度,Node.js 处于领先地位。同时,
Node.js 相比于其他语言的发展速度是最快的,据 2016 年 1 月份 Node.js 社区调查显示:
Node.js 目前在全球大约有 350 万用户,年增长率为 100%。