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,能夠將性能瓶頸準肯定位到某些函數,而後進行鍼對性的優化,這樣能夠幫助咱們快速修復性能問題。

參考

相關文章
相關標籤/搜索