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 インジェクションを防ぐ原理の分析

推薦する

Linuxカーネルの浮動小数点演算のサポートに関する簡単な説明

現在、ほとんどの CPU は浮動小数点ユニット (FPU) をサポートしています。FPU は、プロセ...

MySQL 8.0.16 winx64 のインストールと設定方法のグラフィックチュートリアル (win10 の場合)

この記事では、MySQL 8.0.16 winx64のインストールと設定の具体的な方法を記載します。...

Vue.js での $emit の使用に関する詳細な説明

1. 親コンポーネントは props を使用して子コンポーネントにデータを渡すことができます。 2....

Zabbixで電子メールアラートを実装する方法

オンラインチュートリアルに従って実装しました。 zabbix3.4、スクリプトとsendEmailを...

さようなら Docker: 5 分で Containerd に移行する方法

Docker は非常に人気のあるコンテナ技術です。K8S によって廃止され、別のコンテナ技術である ...

Dockerコンテナでyumを呼び出すときのエラーの解決方法

dockerfile またはコンテナ内で yum を実行すると、エラーが報告され、ソースが見つかりま...

トリガーメソッドを使用して、ファイルタイプの入力をクリックせずにポップアップファイル選択ダイアログボックスを実現します。

トリガー メソッドを使用できます。JavaScript にはネイティブのトリガー関数はありません。自...

Nodejs でタイムドクローラーを実装する完全な例

目次事件の原因Node Scheduleを使用してスケジュールされたタスクを実装する1. node-...

データ URI スキームを使用して Web ページに画像を埋め込む方法の紹介

データ URI スキームを使用すると、HTML、CSS、Javascript などで使用できるインラ...

VueとFlask間の通信の実装

axiosをインストールして通信を実装するここでは、axios を使用して Vue フロントエンドと...

DockerコンテナにNFS共有ディレクトリをマウントする実装

以前、https://www.jb51.net/article/205922.htm で、Docke...

NodeJSのモジュール性に関する詳細な説明

目次1. はじめに2. 本文2.1 モジュールとは何ですか? 2.2 解決2.3、require.r...

Vueコンポーネントの動的コンポーネントの詳細な説明

目次要約する要約する配列が変更されると、対応するデータを動的にロードしますシナリオ: 異なるコンポー...

Vue3 Vue CLI マルチ環境設定

目次1. はじめに2. 切り替え1. 開発および本番環境の設定ファイルを追加する2. 複数の環境をサ...

CSS フィルターを使用してマウスオーバー効果を記述する例

CSSフィルターを使用してマウスオーバー効果を記述する <div class="fi...