背景
先来张图
可以看到master是刚启动7个小时,占用内存349.5M,属于正常情况。经几天的观察,会上涨到800M+,猜测是定时任务的原因,为了找到真正的原因,决定采用alinode做性能监控。
什么是alinode
- 基于 Node 运行时的应用性能管理解决方案,是面向中大型 Node.js 应用提供性能监控、安全提醒、故障排查、性能优化等服务的整体性解决方案。
- 精确到虚拟机级别的深度监控,能够如实的反应应用运行状态,通过配置报警规则,用户可以在发现系统出现故障(内存泄露或者 CPU 热点等)趋势时,通过诊断接口迅速定位故障点。
安装启动
很简单的交互式部署
下载如下脚本wget -q https://raw.githubusercontent.com/aliyun-node/alinode-all-in-one/master/alinode_all.sh
执行命令,根据提示安装组件和配置bash -i alinode_all.sh
期间会让输App ID和App Secret,在阿里云Node.js性能平台新建应用即可
安装完成后会生成yourconfig.json配置文件
logdir默认是/tmp/
启动应用ENABLE_NODE_LOG=YES pm2 start app.js
或ENABLE_NODE_LOG=YES node app.js
使用
进入阿里云控制台
可以看到已经有监控信息了,分别对系统和node进行监控
每个横向代表一个node进程,还有总的堆大小,handle数等,更重要的是!!
看到更清晰直观的表示,可以看到一次次的垃圾回收
更重要更重要的是!!!!!最上面的几个功能,看到没!!堆快照!!还有GC Trace
创建后,提交分析,直接找到可疑点,然后根据这个点去追踪
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。