Load Generator の過負荷が実行時間とボリューム (1 時間あたりのトランザクション数) に影響を与えることは知っていますが、それが応答時間にも影響するかどうかはわかりません。私の仮説が間違っていれば、応答時間には影響しないということです。応答時間にどのように影響するか教えてください。
4 に答える
使用するツールに関係なく、応答時間にも影響します。いくつかの例を次に示します。
- CPU の過負荷により、ツール プロセスの応答が遅くなり、少なくとも完全な読み込み時間に影響します
- ネットワークの過負荷は、競合が発生するため、応答時間に影響を与えます
- ガベージコレクションも影響します...
したがって、経験則として、インジェクターが過負荷になることは決してありません。
過負荷のロード ジェネレーターと過負荷でないロード ジェネレーターを比較すると、最初の負荷ジェネレーターは、要求の発行時に処理遅延が挿入されるため、ヒット率が低下するため、応答時間が短縮されます。つまり、過負荷の Load Generator は、より高いパフォーマンスを誤って報告します。これは、両方のテストで、トランザクションの失敗につながるパフォーマンス エラーがアプリケーションに発生しない場合にのみ当てはまります。
Load Generator が過負荷になると、応答時間が影響を受けます。Load Generator は、リクエストの送信、レスポンスの受信、およびレスポンスの処理 (検証など) を担当します。送信、受信、処理のすべてが過飽和負荷ジェネレーターの影響を受ける可能性があり、その結果、スループットが低下しますが、主に問題となるのは処理です。
応答が受信されたことをツールが登録するのが遅れると、報告される応答時間に影響し、実際よりも遅い応答時間が報告される可能性があります。これは、リクエストが追加のリソース (CSS、JS、画像) をダウンロードしようとすると、問題が増える可能性があるため、さらに悪化します。
あなたの仮説は間違っています。Load Generator が過負荷になると、仮想ユーザーを含むホスト上のすべての実行速度が低下するため、応答時間に影響を与えます。仮想ユーザーのログ レベルを上げても、応答時間が遅くなります。これにより、ディスクの制約が発生し、ディスクにログを書き込む数十または数百の競合するプロセス間でディスク書き込みヘッドの調停が発生するため、" write on error" をテスト中のログ レベルとして使用します。未熟なテスト ツール ユーザーは貧弱なテスト コードを書く傾向があり、CPU とメモリ リソースを浪費し、ユーザーのパフォーマンスに影響を与えずにホスト上で実行できるユーザーの数が少なくなります。
Load Generator の影響に関連する問題を特定するのに役立つ経験則がいくつかあります。これらの最初のものは、テストでの制御因子の使用です。思い出すと、制御因子は、テスト対象とは無関係に、テスト自体の完全性を測定できるようにするテスト設計の要素です。パフォーマンス テストの場合は、テスト中に仮想ユーザーと並行して実行されるコントロール アプリケーションまたはコントロール ロード ジェネレーターのいずれかを導入できます。
制御アプリケーションでは、制御アプリケーションの各 Load Generator に少数のユーザーを含めるだけで済みます。これらのユーザーは、テスト期間中実行されます。それらの応答は、制御アプリケーションの負荷レベルが低いために低下するのではなく、一定である必要があります。コントロールグループで応答時間の低下、上昇が観察された場合は、ジェネレーターが応答時間に影響を与えたことになります。Load Generator が過負荷になっています。
2 番目のケースであるコントロール ジェネレーターでは、すべてのハードウェアに一致するロード ジェネレーターがあり、コントロール ロード ジェネレーター (非常に負荷の軽いコントロール ジェネレーター) で各タイプの単一の仮想ユーザーを実行しています。テスト中に、制御負荷ジェネレーターと同様のタイプの母集団の残りの部分の応答時間を観察します。コントロール ロード ジェネレーター グループとグローバル グループ (他のロード ジェネレーター) の両方が同じ速度で低下する場合は、アプリケーションによって引き起こされたパフォーマンスの問題があり、結果に高い信頼性があります。グローバル時間は低下しているが、コントロール グループは低下していない場合は、ロード ジェネレーターが過負荷になり、ローカル仮想ユーザーのパフォーマンスが低下しているという問題があります。
どちらの場合でも、コントローラーノードに加えて、少なくとも 3 つの Load Generator を使用することをお勧めします。制御アプリケーションを使用すると、最小 3 つの負荷のバランスが取れていることがわかります。コントロール ロード ジェネレーターを使用すると、プライマリ ロード用に 2 つ、コントロール ロード用に 1 つが表示されます。Load Generator の最小数は 3 であることに注意してください。負荷とテクノロジ スタックに応じて、制御要素を含める必要がある何百もの負荷ジェネレーターを調べることができます。
その他の経験則: Load Generator (CPU、DISK、MEMORY、NETWORK) 上の特定の有限リソースに対して、使用可能なリソース プールの 75% を超えないようにしてください。オペレーティングシステムによってサービスされます。これは、テスト対象のアプリケーションを監視するのと同じように Load Generator を監視するという仮定につながります。
ロギングを最小限に抑えます。すべてのツール メーカーが自社のテスト ツールの仮想ユーザーをスワッピングの対象としてマークしているため、仮想ユーザー プロセスのスワッピングに注意してください。これが発生すると、ディスク ヒットとメモリ ヒットが発生します。テスト対象のアプリケーションとは関係なく、ユーザーの速度を低下させる悪い魔法です。