負荷テストを実行すると、アプリケーションは比較的低い負荷ポイントで終了します。テストのために、私はこのnpmパッケージloadtestを使用します。Node + Express:アプリケーションをエラーで終了させるloadtest:accept ENFILE
10回の同時実行で10秒間に1000回のリクエストでテストを実行します。
loadtest http://localhost:3000/my/api -t 10 -c 10 --rps 1000
アプリケーションには、約2秒後に終了し、非常に有用ではありません、次のエラーが発生します。
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に制限されています(私はそれを上回ることはできません)。
アプリケーションでは、約10回の同時通貨で400rpsを処理できます。
私のローカルマシンはMac OS Sierra、CPU:1.6GHz、RAM:8GBです。
は、関連の提供しますあなたが実行しているマシンがどれほど良い(または悪い)ものであっても、コード内の問題により、最小限の負荷でもアプリケーションがクラッシュする可能性があるため、コードはスタートになります。 – peteb
あなたはどのようにして限界を9999と結論づけましたか? – robertklep
@peteb問題はコードにありません。それは10回の同時通貨で約400 rpsでテストに応答します。誰かがENFILEエラーで明らかにできるかどうかだけを知りたい。 –