在這個由軟件定義的世界裏,企業每每是經過 Web 應用和移動應用程序來提供他們大部分的服務。因此對企業來講,一個很是重要的任務就是要確保用戶擁有出色的使用體驗。Node.js 正迅速成爲時下最流行的平臺之一,它被用於方便地搭建響應速度快、易於擴展的網絡應用和移動應用程序。經過下圖也能夠看出,Node.js 正在成爲新的主流。html
衆所周知,Node.js 是單線程服務器,新事件會觸發代碼的執行,進行一系列 I/O 操做,並在完成後回調。對於 I/O 密集型的應用,例如 Web 和移動應用程序,這種事件驅動異步調用的計算模型很是有用,不過要在一個關鍵事務裏同時跟蹤多個異步調用則是一項艱鉅的任務。node
在不久前, InfoWorld 發佈了一篇文章,標題是《Node.js 日趨成熟:面臨的新機遇和風險》,在這篇文章中,Serdar Yegulalp 對由 Node.js 驅動應用程序面臨的機遇和風險作了評論,他也談到 Koa、Express 和 Node.js-canvas 項目創造者 TJ Holowaychuk 從 Node.js 的開發社區中退出這件事。對 Holowaychuk 來講,Node.js 是一個頗有價值、頗有生命力的項目,但 「若是你的應用很是脆弱,難以進行調試,而且很難進行重構和開發的話,那麼性能再好也沒有用」,他的這番話突出了 Node.js 目前所面臨的挑戰。數據庫
既然 Node.js 已日漸成爲主流,並且企業也開始使用 Node.js 來構建他們關鍵業務的移動端和 Web 端應用程序。那麼,提升 Node.js 應用基礎架構和異步調用過程的能見度,以及支撐程序和硬件基礎設施的可視化,對企業來講就變得相當重要。canvas
應用性能管理「APM」就提供了一個很好的解決方案。APM 能夠幫助企業實時地對 Node.js 性能監控,深刻調用堆棧,在整個分佈式環境中串聯起事務,診斷生產和開發環境中的性能瓶頸。並且,企業也須要這種可視性,讓潛在問題在真正影響到用戶以前就被解決掉。而對於影響用戶體驗、致使評分很低的性能問題,他們也須要一種深刻源碼級別的調試手段。瀏覽器
如下是確保 Node.js 程序最佳性能的五個技巧:性能優化
1. 確保 Node.js 應用環境得到終端到端的可視性服務器
首先,APM 解決方案能夠自動發現應用的拓撲結構和相互依存關係,並基於線上應用程序的行爲來跟蹤關鍵事務,而後把它們關聯起來。你應該確保本身的解決方案可以跟蹤 Node.js 事件循環中全部的異步調用,並結合關鍵事務組合起來進行分析。同時,你應該可以清楚地看到關鍵事務端到端的展示和優先程度,而不僅是程序和基礎設施節點的健康情況。網絡
2. 實時檢測程序錯誤和異常架構
其實,APM 解決方案應該可以實時地監測到由各個模塊拋出的錯誤和異常。經過不斷跟蹤業務性能,你應該可以找到那些偏離正常範圍的較慢交易,深刻到實際問題,在它切實影響到用戶以前,主動地修復錯誤或儘快解決異常問題。異步
3. 從代碼級別監控應用程序
若是想要排查任何性能問題,最好可以深刻到源代碼級的級別。試想這樣一個解決方案,它能夠很是深刻地監控應用程序,抓到 Node.js 事件循環中全部異步調用並提供調用圖。而後,你就能夠經過瀏覽器或移動應用程序,輕鬆地定位到程序代碼中的熱點和慢方法。
4. 關注你的終端用戶體驗
你應該可以使用相同的監控方案,直觀地看到全球各地的監測數據,來了解移動端和 Web 端的用戶體驗。這也能讓你快速識別 Node.js 應用程序代碼中那些很差的代碼,在這些問題切實影響到用戶體驗以前修復它們,從而避免用戶在社交媒體上分享他們糟糕的體驗,他們有可能會卸載你的應用程序,甚至還會在 App Store 和其餘評論網站上給予差評。
5. 關注 Node.js 應用程序依賴的數據庫和服務器
對於頻繁訪問數據庫的現代 I/O 密集型網站,Node.js 非阻塞的特色被認爲是很是理想的。因此,關注支撐起 Node.js 應用程序的數據庫、服務器等基礎設施的性能是很是重要的。你應該可以深刻到慢查詢、存儲過程,或者硬件基礎設施層面去快速的診斷和解決 Node.js 應用程序的問題。
做爲國內 APM 領域的領軍企業,OneAPM 是國內首家支持 Node.js 的應用性能管理雲解決方案,不只能夠幫你找到 Node.js 應用內部性能表現最差的事務,還能夠定位數據庫中能耗最大的部件。爲了適應 Node.js, OneAPM 如今也支持非關係型數據庫 Redis、MongoDB 以及 Memcached 等等。
除此以外,經過查看性能表現差的第三方 API、Web Services、內存使用量等性能數據,還可以幫助你快速定位性能瓶頸;經過事務的深度 Traces 記錄,協助你完成應用性能管理從抽象到具象的追溯過程。若是你想對 Node.js 的應用性能進行優化的話,能夠點擊這裏進行下載,免費試用一下!