Apache ab同時負荷ストレステストの実装方法

Apache ab同時負荷ストレステストの実装方法

腹筋コマンドの原則

Apache の ab コマンドは、マルチスレッドの同時リクエストをシミュレートして、サーバーの負荷圧力をテストします。また、nginx、lighthttp、IIS などの他の Web サーバーの負荷をテストすることもできます。
ab コマンドは、負荷を発行するコンピュータに対する要件が非常に低くなっています。CPU やメモリを大量に消費することはありませんが、ターゲット サーバーに大きな負荷がかかります。そのため、特定の DDOS 攻撃に対する必須の対策であり、若者にも高齢者にも適しています。ご自身でご使用の際はご注意ください。そうしないと、一度に過度の負荷がかかると、メモリ不足によりターゲット サーバーがクラッシュし、再起動が必要になる可能性があり、コストに見合いません。

帯域幅が不十分な場合は、ローカルでテストするのが最適です。イントラネット経由でテストするには、イントラネット上の別のサーバーまたは複数のサーバーを使用することをお勧めします。この方法で取得されるデータは、はるかに正確になります。ウェブサーバーのリモートストレステストでは、満足のいく結果が得られないことがよくあります(ネットワークの遅延が長すぎるか、帯域幅が不十分なため)。

ダウンロードしてインストール:
http://mirror.bit.edu.cn/apache//httpd/binaries/win32/?C=M;O=A

httpd-2.2.21-win32-x86-no_ssl.msiを見つける

パラメータのドキュメント:
http://httpd.apache.org/docs/2.2/programs/ab.html

走る:

Windowsシステムでは、cmdコマンドラインウィンドウを開き、Apacheインストールディレクトリのbinディレクトリを見つけます。
cd C:\Program Files (x86)\Apache Software Foundation\Apache2.2\bin

次のコマンドを入力します:

ab -n 800 -c 800 http://192.168.0.10/

(-n は 800 件のリクエストを送信し、-c は 800 件の同時実行をシミュレートします。これは 800 人が同時にアクセスすることに相当し、その後にテスト URL が続きます)

ab -t 60 -c 100 http://192.168.0.10/
一度に 100 件のリクエストを 60 秒以内に送信します。

//URLにパラメータを含める必要がある場合は、次のようにします
ab -t 60 -c 100 -T "text/plain" -p p.txt http://192.168.0.10/hello.html

p.txtはab.exeと同じディレクトリにあります
パラメータはp.txtに書き込むことができます(例:p=wdp&fq=78)

結果パラメータの説明:
これは ApacheBench バージョン 2.3 です <$Revision: 655654 $>
著作権 1996 Adam Twiss、Zeus Technology Ltd、http://www.zeustech.net/
Apache Software Foundation にライセンス供与されています (http://www.apache.org/)

192.168.0.10 のベンチマーク (しばらくお待ちください)
100件のリクエストを完了しました
200件のリクエストを完了しました
300件のリクエストを完了しました
400件のリクエストを完了しました
500件のリクエストを完了しました
600件のリクエストを完了しました
700件のリクエストを完了しました
800件のリクエストを完了しました
800件のリクエストを完了しました


サーバー ソフトウェア: Microsoft-HTTPAPI/2.0
サーバーホスト名: 192.168.0.10
サーバーポート: 80

ドキュメントパス: /
ドキュメントの長さ: 315バイト HTTPレスポンスデータ本体の長さ

同時実行レベル: 800
テストにかかった時間: 0.914秒
完了したリクエスト: 800 完了したリクエスト: 800
失敗したリクエスト: 0
書き込みエラー: 0
2xx以外の応答: 800
転送合計: 393600 バイト
転送された HTML: 252000 バイト 転送された HTML コンテンツ
1秒あたりのリクエスト数: 875.22 [#/秒] (平均)
リクエストあたりの時間: 914.052 [ミリ秒] (平均) サーバーがリクエストを受信して​​ページに応答するまでにかかる時間
リクエストあたりの時間: 1.143 [ms] (平均、すべての同時リクエスト全体) 各同時リクエストで消費される平均時間
転送速度: 420.52 [キロバイト/秒] 受信 1 秒あたりのネットワーク トラフィックの平均量。これにより、応答時間の延長を引き起こす過剰なネットワーク トラフィックがあるかどうかを排除できます。


ネットワークに費やされた時間の内訳:
接続時間 (ミリ秒)
最小 平均[+/- 標準偏差] 中央値 最大値
接続: 0 1 0.5 1 3
処理: 245 534 125.2 570 682
待機中: 11 386 189.1 409 669
合計: 246 535 125.0 571 684

シナリオ全体のすべてのリクエストの応答ステータス。このシナリオでは、各リクエストの応答時間があり、ユーザーの50%の応答時間は571ミリ秒未満です。
ユーザーの 80% が 652 ミリ秒以内に応答しました。最大応答時間は 684 ミリ秒未満でした。
一定時間内に処理されたリクエストの割合(ミリ秒)
50% 571
66% 627
75% 646
80% 652
90% 666
95% 677
98% 681
99% 682
100% 684 (最長リクエスト)

以下もご興味があるかもしれません:
  • Apache abツールを使用してApacheサーバーで簡単なストレステストを実行します。
  • Nginx サーバーのストレス テストを実行するための ab の設定方法
  • ab ウェブサイト ストレス テスト コマンド
  • ab ツールを使用してサーバー上で API ストレス テストを実行します。

<<:  jQueryは居住地を選択するためのドロップダウンボックスを実装します

>>:  PDO を使用して SQL インジェクションを防ぐ原理の分析

推薦する

Kali に docker と portainer をインストールする方法

dockerの登場により、多くのサービスが徐々にハードウェアアーキテクチャへの依存から脱却しました。...

border-radiusは要素に丸い境界線を追加する方法です

border-radius:10px; /* すべての角は半径 10px で丸められます*/ bor...

デザインのヒント: きっと気に入っていただけると思います

<br />このタイトルを見ると、見覚えがあるかもしれません。多くのウェブサイトが同様の...

MySQL でテーブルを削除する 3 つの方法 (要約)

ドロップテーブルドロップはテーブル情報を直接削除するため、最も高速ですが、データを取得することはでき...

スペース均等互換性の問題を解決する2つの方法についての簡単な説明

flex は 2009 年のリリース以来、ほぼすべてのブラウザでサポートされています。シンプルでレス...

MySQLでヘッダー付きのCSVファイルをエクスポートする方法

公式ドキュメント http://dev.mysql.com/doc/refman/5.7/en/se...

MySQLフィールドのデフォルト値を設定する方法

目次序文: 1. デフォルト値に関する操作2. 使用上の提案要約:序文: MySQL では、テーブル...

HTML の基本 - CSS スタイルシート、スタイル属性、フォーマット、レイアウトの詳細

1.位置:固定一部の Web サイトの右下隅にあるポップアップ ウィンドウなどの、ブラウザーを基準と...

CSS3 で虫眼鏡効果を模倣するいくつかの方法の原理の分析

記事のタイトルが「模造虫眼鏡」なのはなぜですか?今日お話ししたいのは、一般的に言われているような、マ...

CSS スタイルをプログラムで処理するためのサンプル コード

プログラム的アプローチの利点1. スタイルの分散を避けるためのグローバルコントロール2. シンプルな...

Linux で特定のプログラムを見つけるための whereis の例の詳細な説明

Linuxは特定のプログラムを見つけますwhereis コマンドは主にプログラム ファイルを検索し、...

ベンダー プレフィックス: ブラウザ エンジン プレフィックスが必要なのはなぜですか?

ベンダープレフィックスとは何ですか?ベンダー プレフィックス - ブラウザー エンジン プレフィック...

nginxを使用して取得したIPアドレスが127.0.0.1である問題を解決する

IPツールを取得 lombok.extern.slf4j.Slf4j をインポートします。 org....

MySQL InnoDB MRR 最適化ガイド

序文MRR は Multi-Range Read の略で、ランダム ディスク アクセスを削減し、ラン...