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

小编推荐: Fundebug提供JS、微信小程序、微信小游戏,Node.js和Java错误监控。真的是一个很好用的错误监控服务,众多大佬公司都在使用。

摘要: 使用Easy-Monitor,可以准确定位Node.js应用的性能瓶颈,帮助我们优化代码性能。

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

问题

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

接入Easy-Monitor

接入Easy-Monitor非常简单,在入口js文件中导入即可:

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

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

Node.js性能分析神器Easy-Monitor_第1张图片

采集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分钟之后,就可以看到统计结果:

Node.js性能分析神器Easy-Monitor_第2张图片

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

修复性能问题

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

那么,剩下的工作就非常简单了,对函数A进行性能优化即可。经过分析,函数A进行了大量重复计算,增加2行代码就可以大大地优化其性能。具体细节不再赘述,因为不是本文重点。

优化前后的性能比较

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

总结

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

参考

  • Easy-Monitor 2.0: 开启你的 Node.js 内核性能监控

关于Fundebug

Fundebug专注于JavaScript、微信小程序、微信小游戏、支付宝小程序、React Native、Node.js和Java线上应用实时BUG监控。 自从2016年双十一正式上线,Fundebug累计处理了10亿+错误事件,付费客户有阳光保险、荔枝FM、掌门1对1、核桃编程、微脉、青团社等众多品牌企业。欢迎免费试用!

版权声明:
转载时请注明作者Fundebug以及本文地址:
https://blog.fundebug.com/2018/02/28/nodejs-performance-tool-easy-monitor/

您可能感兴趣的

  • 30个极大提高开发效率的VS Code插件
  • 10个JavaScript难点
  • 10个最佳ES6特性
  • 重新思考单元测试
  • 前端错误收集(Vue.js、微信小程序)
  • 不要争了!技术选择没那么重要
  • 用Fundebug插件记录网络请求异常
  • 没有Fundebug不能复现的BUG
  • 黑科技!Fundebug支持网页录屏!
  • 你还在等着用户反馈BUG?
  • Fundebug抓到了这个Bug
  • Fundebug支持Source Map
  • Fundebug上线2周年!陪你一起Debug!
  • Fundebug三周年!生日快乐!

你可能感兴趣的:(Node.js)