2013-09-23 21 views
9

単体テストだけを使用してJavaアプリケーションですべてのボトルネック、デッドロック、およびメモリリークを見つけるのは難しいです。パフォーマンス/ストレステストJava EEアプリケーション

私のアプリケーションにある程度のストレステストを追加したいと思います。私は、アプリケーションの限界をテストし、高負荷下でどのように反応するかを判断したいと考えています。

私は次のように測定するためにたい:高負荷高負荷

  • ば可用性
  • 高負荷時のパフォーマンス
  • メモリ/ CPU /ディスクの使用状況
  • それが高いの下でクラッシュしません正常に負荷または反応する

また、ノルムアルロード。

ストレステストに対処するためのよく知られた標準的な技術ですか? 私はそのような環境を設定する際に助けと方向性を探しています。 理想的には、これらのテストを定期的に実行して、最近の配信がパフォーマンスに影響を与えるかどうかを判断します。

+2

Apache JMeter http://jmeter.apache.org/をWebアプリケーション用の優れたストレステストツールとしてお勧めします。それは使いやすく、拡張することもできます。 – Rami

+0

私はGatling(http://gatling.io)も優れたツールであることを発見しました。 – cmd

答えて

1

私たちの標準的な技術の1つは、スケーラビリティを測定するためにstepped-ramp load testsを実行しています。

パフォーマンステストとシステムテスト、彼らは違う方法

:アプリケーションのパフォーマンスのための2つのアプローチが主にあります

0

?それは簡単です、それはその範囲に基づいています、パフォーマンステストの範囲は限られており、非常に非現実的です。例:いくつかのApp XでIncomingMessageハンドラをテストします。このため、このハンドラにX、Y、Zベースでメイセージを送信するテストを設定します。このアプローチは、アプリケーションの個々のゾーンや制限されたゾーンの問題を特定し、パフォーマンスを測定するのに役立ちます。

これで今質問が表示されるはずです。アプリのコンポーネントのベンチマークとパフォーマンステストを個別にテストするのですか?コンポーネントの動作が重大であり、新しいバージョンの変更がパフォーマンスの低下を招く可能性が高いと思われる場合ははいです。しかし、アプリケーション全体、つまり相互にやりとりし合っているコンポーネントの束を見て、パフォーマンスがどのように出てくるかを確認するには、システムテストが必要です。

システムテストは常に、顧客の生産環境のできるだけ近くに複製を試みます。ここでは、実際の世界であなたのアプリのパフォーマンスがどのようなものかを確認し、それに応じて修正することができます。

結論として、あなたのアプリのシステムテストをセットアップし、あなたが測定したいと言っていたものを測定します。システム全体を強調し、どのように反応するか見ると、結果に驚くでしょう。

最後に、パフォーマンステストでは、あなたが特定した、またはあなたのアプリで追跡し続ける重要なコンポーネントを個別にテストします。

一般的なガイドラインとして、パフォーマンスを行うときは、常に次のようにしてください。 1.アイドル状態のシステムのベースラインを取得します。 012-2.通常の予測負荷でシステムのベースラインを取得します。 3.ストレス条件下でのシステムのベースラインを取得します。

通常の負荷結果は、ストレス条件に外挿されるべきであり、素敵なシステムは、常に直線的に拡大するものであることに注意してください。

これが役に立ちます。

P.S.テスト、環境設定、さらにはデータ収集までが可能な限り完全に自動化されている必要があります。これは、基本的にこれを実行し、パフォーマンスの問題を診断し、テストを設定しない時間を費やすのに役立ちます。

5

私はJMeterの大ファンです。ユーザーがアクセスするのと同じように、サーバーに対して直接コールを設定できます。ユーザー(同時スレッド)とアクセスの数を制御できます。関連する情報ページをページに貼り付ける、ワークフローに従うことができます。生産的になるには十分に学ぶのに1〜2日かかります。 (あなたはダウンロードの1時間以内に基本をすることができます!)

どのようにすべてのことがサーバーに影響を与えるかは、厳しい質問です。 CAとIBMのプロフェッショナルツールを使用しました。 (私は、おそらくPTSDのために特定のツール名に空白を描いています!)私はすぐに使用できるJVMプロファイラを使用しました。私は、ネイティブのLinuxとWindowsツールを使用しています。アプリケーションのどの部分が問題を引き起こすかをあまり気にしないのであれば、OSのネイティブツールを使ってCPU /メモリ/ IOを監視することができます。

+0

「通常荷重下でこのような特性を測定してコントラストすることもまた興味深い」と述べている。 Metrics:http://metrics.dropwizard.io/3.1.0/をチェックするようにあなたを招待します。 – lrn2prgrm

関連する問題