0

現在、アプリケーションである Java REST サービス Web アプリケーションの負荷テストを行っています。一見パフォーマンスが悪いですが、比較ポイントはありません。

環境: - Amazon micro EC2 インスタンス上の ubuntu 12.04 サーバー - tomcat 7、maxThreads=500、Xmx=450m - デフォルトでインストールされる Java 6。

Web アプリケーション/ サービス : 「getVersion」と呼ばれるサービスを備えた単純化された Web アプリケーション。文字列「1」を返します-処理(データベース、ファイルなど)はありません-「1」を返すだけです。

テスト: multimechanize で負荷テストを行いました: 100 人の同時ユーザーで 60 秒間。事実上、1 秒あたり 76 のリクエストがありました。

結果: 0,X から 5 秒の間で応答します。およそ 10 回のリクエストごとに 5 秒間表示されます。

Tomcat は、この量の同時リクエストを簡単に処理できると考えました。これは正常ですか?メモリ maxThreads 以外に調整するものはありますか?

4

3 に答える 3

2

結果:応答するのに0、Xから5秒の間。約10リクエストごとに1回表示される5秒。

上記に基づいて、プロファイラー(jvisualvmなど)を接続してGCサイクルを監視するか、並列GCを設定してみるか、ヒープサイズを増やして影響があるかどうかを確認します。450mで十分ですが、各リクエストの肥大化と多くのユーザーが頻繁なGCサイクルを引き起こす可能性がありますが、これは推測にすぎませんが、確認する価値があります。

于 2012-09-17T15:47:04.553 に答える
0

最初にローカルのラップトップで同じ負荷テストを試して、マイクロインスタンスを問題から除外します (あなたが言うように非常に単純なアプリである場合、それは難しいことではありません)。

また、jvisualvm を起動して少しプロファイリングするのも簡単です。時折、非常に遅い異常値が GC の問題のような匂いがします。

(これらの数値は、役に立てばかなり恐ろしいものに聞こえます。そのようなダミーアプリは、それよりもはるかに多くを処理することを期待しています).

于 2013-02-24T21:02:49.723 に答える