228

Apache ベンチ ツール( )を使用して Web サイトの負荷テストを行う方法を説明してもらえますabか?

次のことを知りたいです。

サイトは 1 分あたり何人を処理できますか?

これを理解するために実行するコマンドを教えてください。

私はすべてのチュートリアルを試しましたが、混乱しています。

4

6 に答える 6

363

apache ベンチマーク ツールは非常に基本的なものであり、ある程度のパフォーマンスを確実に把握できますが、本番環境でサイトを深刻なストレスにさらすことを計画している場合にのみ依存するのはお勧めできません。

そうは言っても、最も一般的で最も単純なパラメーターは次のとおりです。

-c: (「同時実行」)。同時にサイトにアクセスするクライアント (人/ユーザー) の数を示します。ab実行中、-cクライアントがサイトにアクセスします。これは、ベンチマーク中にサイトが受けるストレスの量を実際に決定するものです.

-n: 作成されるリクエストの数を示します。これは、ベンチマークの長さを決定するだけです。サーバーがサポートできる値を持つ高い-n値は、-c持続的なストレスの下で物事が壊れないようにするための良い考えです。5 秒間ストレスをサポートすることと、5 時間ストレスをサポートすることは同じではありません。

-k: これは、ブラウザが本来行う「キープアライブ」機能です。「ブール値」であるため、値を渡す必要はありません-k(つまり、テストで HTTP からの Keep Alive ヘッダーを使用して接続を維持することを望んでいることを示します)。ブラウザはこれを行い、サイトがブラウザから受けるストレスとフローをシミュレートしたい可能性が高いため、これでベンチマークを行うことをお勧めします。

最後の引数は単にホストです。デフォルトでは、指定しない場合は http:// プロトコルにヒットします。

ab -k -c 350 -n 20000 example.com/

上記のコマンドを発行することにより、 20,000 のリクエストが満たされるまで、350 の同時接続でhttp://example.com/にヒットします。キープアライブ ヘッダーを使用して実行されます。

プロセスが 20,000 件のリクエストを完了すると、統計に関するフィードバックを受け取ります。これにより、上記のパラメータを使用したときにサイトに加えたストレスの下で、サイトがどれだけうまく機能したかがわかります.

サイトが同時に処理できる人数を調べるには、応答時間 (平均、最小応答時間と最大応答時間、失敗した要求など) がサイトで許容できる数値であるかどうかを確認します (異なるサイトでは異なる速度が必要な場合があります)。「値を大きくすると、失敗したリクエストが発生し始めて壊れる」と言う場所に到達するまで、さまざまな -c 値でツールを実行できます。

Web サイトによっては、1 分あたりの平均リクエスト数が予想されます。これは非常に変化するため、ab でこれをシミュレートすることはできません。ただし、次のように考えてみてください。平均的なユーザーが 1 分間に 5 つのリクエストをヒットし、有効な平均応答時間が 2 秒である場合、1 分間に 10 秒のユーザーがリクエストを処理していることを意味します。 1/6 の確率でサイトにヒットします。これはまた、6 人のユーザーが同時に ab でサイトにアクセスしている場合、同時実行レベル (-c) が 6 しかなくても、シミュレーションで 36 人のユーザーがいる可能性が高いことを意味します。

これは、サイトを使用するユーザーに期待する動作によって異なりますが、「ユーザーが 1 分間に X リクエストをヒットすると予想しており、平均応答時間が 2 秒であれば有効であると考えています」から得ることができます。次に、平均応答時間が 2 秒になるまで -c レベルを変更し (ただし、最大応答時間と stddev がまだ有効であることを確認してください)、-c をどれだけ大きくできるかを確認します。

私はこれを明確に説明したいと思います:)頑張ってください

于 2012-10-04T17:19:10.943 に答える