Node.js 應用性能優化的五個技巧

jopen 9年前發布 | 30K 次閱讀 Node.js Node.js 開發
 

在這個由軟件定義的世界里,企業往往是通過 Web 應用和移動應用程序來提供他們大部分的服務。所以對企業來說,一個非常重要的任務就是要確保用戶擁有出色的使用體驗。 Node.js 正迅速成為時下最流行的平臺之一,它被用于方便地搭建響應速度快、易于擴展的網絡應用和移動應用程序。通過下圖也可以看出, Node.js 正在成為新的主流。

Node.js 應用性能優化的五個技巧

眾所周知,Node.js 是單線程服務器,新事件會觸發代碼的執行,進行一系列 I/O 操作,并在完成后回調。對于 I/O 密集型的應用,例如 Web 和移動應用程序,這種事件驅動異步調用的計算模型非常有用,不過要在一個關鍵事務里同時跟蹤多個異步調用則是一項艱巨的任務。

在不久前, 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 應用基礎架構和異步調用過程的能見度,以及支撐程序和硬件基礎設施的可視化,對企業來說就變得至關重要。

應用性能管理 「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 等等。

Node.js 應用性能優化的五個技巧 Node.js 應用性能優化的五個技巧

除此之外,通過查看性能表現差的第三方 API、Web Services、內存使用量等性能數據,還能夠幫助你快速定位性能瓶頸;通過事務的深度 Traces 記錄,協助你完成應用性能管理從抽象到具象的追溯過程。如果你想對 Node.js 的應用性能進行優化的話,可以點擊 這里 進行下載,免費試用一下!

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!