簡體   English   中英

使用LoopBack和Kerberos的Node.js應用程序的性能峰值

[英]Performances spikes on Node.js application using LoopBack and Kerberos

我們的API通過使用LoopBack框架,使用Kerberos作為身份驗證層從HBase檢索數據的Node.js實施,顯示出5000 ms和10000 ms的莫名其妙的性能峰值,大部分請求在1000 ms內返回了結果。

性能高峰

我們的應用程序在OpenShift上作為Docker容器運行。 我們正在運行Node.js版本6.13,我們的操作系統是Red Hat Linux 7.3

我們嘗試通過執行以下操作來查明問題所在:

  1. 使用和不使用Kerberos均可運行。 盡管使用Kerberos運行應用程序似乎使運行情況惡化,但沒有Kerberos的運行峰值顯示出幾乎相同的模式。 因此,我們排除了Kerberos作為問題的根源。

  2. 在本地而不是在OpenShift中運行該應用程序。 尖峰和OpenShift一樣都在本地發生。 因此,我們排除了OpenShift作為問題的根源。

  3. 創建帶有和不帶有LoopBack的應用程序。 尖峰出現在兩個應用程序上,因此我們也排除了LoopBack作為問題的根源。

  4. 在內存數據庫中使用Node.js(帶有LoopBack)。 當使用內存數據庫並且不執行任何外部請求時,我們不再看到峰值。 由此得出的結論是,Node.js本身不是問題,但使用Node.js外部請求似乎正在發生某些事情。

我們正在尋找可能導致性能問題或在哪里進行進一步調查的建議。

我們已經解決了這個問題,事實證明這是NodeJS處理DNS查找請求的方式。

最初,我們不認為可能是這種情況,沒有其他應用程序出現連接問題,並且使用curl啟動相同的請求不會導致超時。 使用systrace之后,我們注意到每100個DNS查找請求中就有一個花費了很長時間,這與我們之前看到的峰值相吻合。 將IP地址添加到運行我們的節點代碼的每台計算機上的主機文件中后,此問題已解決。

暫無
暫無

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

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