當我運行負載測試時,我的應用程序在相對較低的壓力點下退出。爲了測試,我使用這個npm包loadtest。Node + Express:導致應用程序退出的loadtest錯誤:接受ENFILE
我運行測試,每秒1000個請求,10個併發10秒。
loadtest http://localhost:3000/my/api -t 10 -c 10 --rps 1000
應用程序退出後大約兩秒鐘,並給出以下錯誤,這是不是很有用。
events.js:163
throw er; // Unhandled 'error' event
^
Error: accept ENFILE
at exports._errnoException (util.js:1050:11)
at TCP.onconnection (net.js:1462:24)
顯然,這與打開文件的數量有關。我試過這個命令ulimit -n <number>
但它沒有幫助。這是限制在9999(我不能把它設置在上面)。
該應用程序可以處理大約400rps的10個併發貨幣。
我的本地機器是Mac OS Sierra,CPU:1.6GHz,RAM:8GB。
提供有關代碼將是一個開始,因爲無論運行的機器有多好(或不好),代碼中的問題都會導致任何應用程序在最小的負載下崩潰。 – peteb
你是如何得出9999的限制的? – robertklep
@peteb問題不在代碼中。它使用10個併發數對測試進行了約400個測試。我只想知道是否有人可以澄清ENFILE錯誤。 –