Tomcatの平均最大同時ユーザー数
-
06-07-2019 - |
質問
Webアプリケーション(Spring、Struts2 RESTで構築、PostgreSQLを使用)で JMeter
でストレステストを行っています。
アプリで典型的なユーザーのシナリオをシミュレートしています:
GET 4回、INSERT 3回、UPDATEコール20回。
サーバーの仕様:
4core Intel Xeon X5365 3GHz
8GB RAM
シングル320GB SATAディスク
OS:Ubuntu 8.10 32ビット
DB:Postgresql 8.4
Tomcat 6.0.18
Java 1.6.0_14
結果は、サーバーが約130の同時トランザクションを処理することを示しています。この番号は可能ですか?私と比較するための結果はオンラインにありますか?
解決
ボトルネックはデータベース内にあるため、データベースのパフォーマンスを知らずに比較するのは非常に困難です。
同様のマシンがあります(Tomcat 5.5を実行する16GB RAMを除く)。ピーク負荷では、256の同時接続に簡単に対応できます。 maxThreadsを512に変更することを議論しています。
いくつかのチューニングのヒント、
- Apacheをフロントエンドとして実行する場合は、
mod_jk
を使用します。そのパフォーマンスはmod_proxy
よりもはるかに優れています。 - HTTPを直接提供する場合、またはmod_proxyを使用する場合は、Tomcat 6のNIOコネクタを使用します。
- スレッドプール(maxThreads)が十分に大きいことを確認します。デフォルトは200のみです。
- Tomcatをステートレスにします。特に、HttpSessionは使用しないでください。この状態により、アプリでメモリリークが発生し、パフォーマンスが徐々に低下する場合があります。すべての状態をデータベースまたはクライアント(Cookie)にプッシュします。
- データベースプーリング(DBCP)を使用します。 MySQLがあり、JDBCドライバーは非常におしゃべりです。
- JMeterの1つのインスタンスを実行すると、それがボトルネックになる可能性があります。異なるネットワークから複数のスレーブを実行して、実際の生産負荷をシミュレートします。
所属していません StackOverflow