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


摘要: 使用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界面:


采集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分鍾之后,就可以看到統計結果:


使用Fundebug,闊以及時發現並修復應用錯誤,趕緊免費試用吧!!!

修復性能問題

由Easy-Monitor的統計結果可知,函數A是性能瓶頸,消耗了最多的CPU時間。

那么,剩下的工作就非常簡單了,對函數A進行性能優化即可。經過分析,函數A進行了大量重復計算,增加2行代碼就可以大大地優化其性能。具體細節不再贅述,因為不是本文重點。

優化前后的性能比較

根據ab命令的測試結果,優化前平均每秒處理5.36個,優化后這個數字變成了48.35,是之前的9倍。將這個模塊部署之后,服務器的CPU使用率大幅下降,接口的響應時間也恢復了正常。

總結

使用Easy-Monitor,可以將性能瓶頸准確定位到某些函數,然后進行針對性的優化,這樣可以幫助我們快速修復性能問題。

參考

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM