ハードウェアが許す限りの速さで何千もの http リクエストを行わなければならないプログラムがあります。現実の世界では、これらの接続はそれぞれ個別のサーバーに接続されますが、負荷をシミュレートするのに役立つテスト プログラムを作成しました (うまくいけば)。
私のプログラムは、Apache HttpClient を使用して http 要求を作成します。hereのスレッド化されたリクエストの実行例に基づいてコードを作成しました。
私のテスト プログラムは、Jetty を使用して http 要求を処理し、適切な応答を返します。ここにある HelloServlet のような単純な例に基づいてコードを作成しました。
テストを実行して jetty プロセスを監視すると、わずかな量の CPU リソースしか使用しません。さらに、VM を使用して jetty サーバーの 2 番目のインスタンスを実行したところ、半分近くの時間でテストが完了したことがわかりました。
Jetty の調整方法に関する情報を探したところ、このドキュメントが見つかりました。これらの手順に従いましたが、パフォーマンスが向上するようには見えませんでした。Jetty のパフォーマンスを向上させる方法に関するより良いドキュメントはありますか?
編集
実行中のアイドル スレッド数を表示するために、Jetty サーバーをインストルメント化しました。サーバーのスレッドプールを次のように構成しました。
server.setThreadPool(new ExecutorThreadPool(Executors.newFixedThreadPool(500)));
しかし、私のテスト プログラムでは、最大 490 のスレッドがアイドル状態であることがわかりました。私の製品コードは 2,000 のスレッドを使用していますが、jetty が接続をキューに入れているようです。