如何觀察 node.js 的記憶體用量

當程式發生異常的記憶體用量,或甚至 memory leak 導致關閉,我們該如何觀察並找出問題呢?其實有個非常方便的方法,也不需要安裝任何額外的工具。首先打開終端機輸入 node --inspect index.js 來運行程式並監視記憶體。

接著到 chrome 網址列輸入 chrome://inspect/#devices,會出現以下畫面:

Chrome DevTools

上圖紅框中會顯示正在執行的程式的路徑,請點選藍框框中的 inspect,會出現以下視窗:

Chrome DevTools

這個畫面就是記憶體的監視畫面。如上圖顯示的 27.0 MB,就是目前運行程式使用的記憶體大小。

接下來,我們可以用 command line 指令 ab 來模擬大量的 request
ab -n 10000 -c 100 http://localhost:3000/ ,其中 n 代表的是總共要發出幾次請求,c 則是同時發出的請求數。

Chrome DevTools

在發出大量 request 的同時,我們可以在剛剛的視窗中觀察記憶體變化,是否有不合理的上升。如果有的話,我們可以用排除法來一一檢查程式碼中問題的所在。另外你也可以透過拍攝快照來檢視、比較記憶體使用在什麼地方。如果你有用 framework,從快照裡找問題,可能會需要多花些時間。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料