ステートレスJavaサーブレットWebアプリケーションを構築しました。要件は、1秒あたり少なくとも5000トランザクション(150の同時スレッド)を受け入れることです。遅いハードディスクへの書き込みを避けるために、SQLServer2005と一緒にehcacheを使用しています。
パフォーマンステスト(Jmeter 150スレッドを使用)では、1秒あたり約2800トランザクションしかスコアリングできません(予想の半分未満)。JVisualVM内でサンプラーを使用すると、次のことに気付きます。
org.apache.catalina.connector.requestfacade.getsession() <-- take more than 44.7% of CPU time
requestfacade.getsession()は何をしていて、それを高速化する方法はありますか?コードを最適化する必要がありますが、それでも上記の行が何をしているのかを理解する必要があります。それ以外の場合、1秒あたり5000は実際には不可能です。
Tomcat conf:
-単一のTomcatインスタンス(6.0.23)-150maxThreadでConnectirエグゼキューターを使用
サーバー設定:
-Windows 2008
-xeonクアッドコア
-8GBのRAM
-1TB RAID 5 HDD
どんな助けでも感謝しなければなりません!