簡體   English   中英

性能測試期間的NodeJS空閑操作

[英]NodeJS idle operation during performance tests

這里的nodejs的相對新手試圖找出新建應用程序中的性能問題。

我在節點0.12.7應用程序上運行性能測試,發現服務器間歇性掛起。 達到該狀態后需要重新啟動。 確認沒有內存泄漏(進程堆不超過500 MB,而我理解的默認最大堆大小為1.4GB)后,我們開始檢查CPU配置文件。 我使用了依賴於v8-profiler的這段代碼來獲取常規配置文件

這是我們從jmeter遇到的圖表之一(盡管服務器沒有掛起) 請求的Jmeter圖

我們通過加載CPU配置文件在Chrome中繪制了火焰圖。 我原本希望在此時發現JS卡住了某個地方,但是我發現恰好在該時間范圍內,節點服務器很長時間都處於空閑狀態。 有誰能幫助我了解在受到客戶端請求轟炸時服務器保持空閑狀態並最終在10分鍾后恢復以繼續運行的可能原因是什么?

不幸的是,我丟失了數據以檢查16:48:10和16:57:40之間的響應是錯誤還是成功,但是很可能它們是來自代理的錯誤響應,因為節點不在意世界。

這是在Chrome中看到的火焰圖

  • 在16.47小時之前, 火焰圖-正常運行(僅在16:47之前)

  • 約16.47小時
    火焰圖-16.47左右

  • 16.47小時后的幾分鍾 火焰圖-在16.47和16.57之間

這可能有多種原因。

  1. 服務器不接受請求。 達到峰值后,您看到吞吐量下降了嗎?
  2. 您是否檢查服務器日志以查看是否記錄了任何異常?
  3. 嘗試繪制測試期間響應時間和吞吐量的趨勢圖。
  4. 您可能希望在代碼中看到任何與IO綁定的操作。
  5. 檢查處理器隊列長度。 如果進程沒有獲得足夠的CPU,您應該看到它正在建立。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM