0

JMeterWebアプリケーション(Springで構築、Struts2 REST、PostgreSQLを使用)でストレステストを行っています。

私は自分のアプリで典型的なユーザーのシナリオをシミュレートしています:

4 回の GET、3 回の INSERT、20 回の UPDATE 呼び出し。

サーバー仕様:

4コア インテル Xeon X5365 3GHz

8GBのRAM

シングル 320GB SATA ディスク

OS: Ubuntu 8.10 32bit

DB: Postgresql 8.4

トムキャット 6.0.18

Java 1.6.0_14

結果は、サーバーが約 130 の同時トランザクションを処理することを示しています。この数字はありえますか?私と比較するオンラインの結果はありますか?

4

1 に答える 1

4

ボトルネックはデータベースにあるため、データベースのパフォーマンスを知らずに比較することは非常に困難です。

同様のマシンがあります (16GB RAM を除き、Tomcat 5.5 を実行しています)。ピーク負荷時には、256 の同時接続を簡単に処理できます。maxThreads を 512 に変更することを議論しています。

いくつかのチューニングのヒント、

  1. Apache をフロントエンドとして実行する場合は、mod_jk. その性能は よりもはるかに優れていmod_proxyます。
  2. HTTP を直接提供するか mod_proxy を使用する場合は、Tomcat 6 の NIO コネクタを使用します。
  3. スレッド プール (maxThreads) が十分な大きさであることを確認してください。デフォルトは 200 のみです。
  4. Tomcat をステートレスにします。特に、HttpSession は使用しないでください。この状態では、アプリでメモリ リークが発生し、パフォーマンスが徐々に低下する可能性があります。すべての状態をデータベースまたはクライアント (Cookie) にプッシュします。
  5. データベース プーリング (DBCP) を使用します。MySQL があり、JDBC ドライバーは非常におしゃべりです。
  6. JMeter の 1 つのインスタンスを実行すると、ボトルネックになる可能性があります。異なるネットワークから複数のスレーブを実行して、実際の生産負荷をシミュレートします。
于 2009-11-28T23:48:44.917 に答える