2

背景

先来张图
图片描述
可以看到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.jsENABLE_NODE_LOG=YES node app.js

使用

进入阿里云控制台
图片描述
可以看到已经有监控信息了,分别对系统和node进行监控
图片描述
每个横向代表一个node进程,还有总的堆大小,handle数等,更重要的是!!
图片描述
看到更清晰直观的表示,可以看到一次次的垃圾回收
图片描述
更重要更重要的是!!!!!最上面的几个功能,看到没!!堆快照!!还有GC Trace
图片描述
创建后,提交分析,直接找到可疑点,然后根据这个点去追踪



zxhaaa
91 声望1 粉丝