Node.js性能分析神器Easy-Monitor

摘要: 使用Easy-Monitor,能够准肯定位Node.js应用的性能瓶颈,帮助咱们优化代码性能。javascript

当应用出现性能问题时,最大的问题在于:**如何准肯定位形成性能瓶颈的代码呢?**对于Node.js开发者,这里推荐一下Easy-Monitor,它应该是阿里巴巴某个90后程序员开发的。这个NPM模块能够帮助咱们快速定位性能瓶颈。html

问题

当负载较高时,某个后端模块的响应时间慢了不少,甚至出现超时错误"504 Gateway Time"。经过查看监控可知,这个模块在高峰期的CPU使用量是满负荷的,这有多是问题所在。java

接入Easy-Monitor

接入Easy-Monitor很是简单,在入口js文件中导入便可:node

if (process.env.NODE_ENV === "development")
{
     const easyMonitor = require("easy-monitor");
     easyMonitor("backend");
}
复制代码

启动应用,访问:http://localhost:12333/index,便可查看Easy-Monitor的UI界面:git

采集CPU数据

**ab**命令能够用于进行压力测试程序员

ab -n 1000 -c 10  -T 'application/json' -p data.json http://localhost:3000/data/
复制代码

运行ab测试的同时,在easy-monitor界面,选择cpu,而后start。easy-monitor就会默默地采集CPU数据,5分钟以后,就能够看到统计结果:github

使用Fundebug,阔以及时发现并修复应用错误,赶忙免费试用吧!!!apache

修复性能问题

由Easy-Monitor的统计结果可知,函数A是性能瓶颈,消耗了最多的CPU时间。json

那么,剩下的工做就很是简单了,对函数A进行性能优化便可。通过分析,函数A进行了大量重复计算,增长2行代码就能够大大地优化其性能。具体细节再也不赘述,由于不是本文重点。后端

优化先后的性能比较

根据ab命令的测试结果,优化前平均每秒处理5.36个,优化后这个数字变成了48.35,是以前的9倍。将这个模块部署以后,服务器的CPU使用率大幅降低,接口的响应时间也恢复了正常。

总结

使用Easy-Monitor,能够将性能瓶颈准肯定位到某些函数,而后进行针对性的优化,这样能够帮助咱们快速修复性能问题。

参考

相关文章
相关标签/搜索