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

推薦する

Vueのv-onパラメータの問題についてお話しましょう

Vue での v-on:clock の使用現在、vue.js フレームワークを学習しています。後で参...

Windows および Linux で tomcat9 を介して war パッケージを手動で展開する方法

Windows 環境と Linux 環境では結果が異なります。ウィンドウズステップ 1: Maven...

Linux でテキストを表示するためのヒント (非常に実用的!)

序文日常の開発では、サーバー上でさまざまなテキストやログの表示操作を実行する必要があることがよくあり...

Chrome デベロッパー ツールの詳細な紹介 - タイムライン

1. 概要ユーザーは、アクセスする Web アプリケーションがインタラクティブでスムーズに実行される...

DIV 背景半透明テキスト非半透明スタイル

DIVの背景は半透明ですが、DIV内の文字は半透明ではありませんコードをコピーコードは次のとおりです...

MySQL Innodbインデックスの原理の詳細な説明

導入振り返ってみると、4年前、私がMySQLのインデックスについて学んでいたとき、先生はインデックス...

vue v-for ループ オブジェクトの属性

目次1. ループオブジェクト内の値2. ループオブジェクト3. キーと値のループ1. ループオブジェ...

MySQL の分離レベル、ロック、MVCC の紹介

この記事の目的は、これらの概念とその機能の関係を明らかにすることです。 Mysql がトランザクショ...

Vue の this.$store.state.xx.xx に関する簡単な説明

目次これを Vue.$store.state.xx.xxストアからデータを取得する私のプロジェクトフ...

Layui は複数条件クエリのサンプルコードを実装します

最近ファイルシステムを作ったのですが、フィールドが多すぎることに気づきましたページングを使用した複数...

Vueカスケードドロップダウンボックスの設計と実装

目次1. データベース設計2. フロントエンドページ3. 完全なデモフロントエンド開発では、カスケー...

MySQL 5.7.17 無料インストールバージョンの設定方法グラフィックチュートリアル (Windows10)

1. 概要ネットでいろいろ検索してみたところ、Linux システム向けではなく、現在の新しいバージ...

実践的な経験を共有するためのコードチェックツールstylelintの紹介

目次序文文章1. stylelintをインストールする2. 設定ファイル3. stylelintを使...

MySQLのルートパスワードをリセットする最も簡単な方法

私の MySQL バージョンは MYSQL V5.7.9 です。古いバージョンを使用してください: ...