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

推薦する

静的ウェブサイトをRSSに変換するツール

<br /> この記事は allwebdesignresources.com から Ra...

Python 仮想環境のインストールとアンインストールの方法と発生する問題

Ubuntu16.04 のインストールとアンインストール pip実験環境Ubuntu 16.04; ...

HTML テーブル マークアップ チュートリアル (9): セル間隔属性 CELLSPACING

テーブルがコンパクトになりすぎないように、テーブル内のセル間に一定の距離を設定できます。基本的な構文...

mysqlは時間を自動的に追加し、時間を自動的に追加および更新する操作を実装します

時間フィールドは、データベースの使用時によく使用されます。よく使われるのは作成時間と更新時間です。し...

MySQL の結合クエリとサブクエリの問題

目次複数テーブル結合の基本構文クロス結合と直積現象クロスコネクトデカルト積現象内部結合外部結合左外部...

node.js で EventEmitter をカスタマイズする方法

目次序文1. 何ですか2. Node.jsでEventEmitterを使用する方法3. 実施プロセス...

Navicat による MySQL パーティショニングの実践

MySQLのパーティショニングは、非常に大きなテーブルを管理するのに役立ちます。MySQLのパーティ...

JavaScript 組み込みの日付と時刻の書式設定のサンプル コード

1. 基礎知識(日付オブジェクトのメソッド) 😜 getFullYear() は年を表す4桁の数字を...

シェルスクリプトを使用して CentOS7 に python3.8 環境をインストールする (推奨)

ワンクリック実行仮想マシンに Python 3.8 をインストールするには、ネットワーク アダプター...

WeChatアプレット仮想リストの応用例

目次序文仮想リストとは何ですか?デモ効果準備スクリーンの高さとボックスの高さ最適化要約する序文人気の...

Ubuntu Server 16.04 MySQL 8.0 のインストールと設定のグラフィックチュートリアル

Ubuntu Server 16.04 MySQL 8.0 のインストールと設定のグラフィックチュー...

ES6 ループと反復可能オブジェクトの例

この記事では、ES6 の for ... of ループについて説明します。古い方法以前は、JavaS...

MySQL 無料インストール版 (zip) のインストールと設定の詳細なチュートリアル

この記事では、MySQL無料インストール版(zip)のインストールと設定のチュートリアルを参考までに...

Vue3+Element+Tsは、フォームの基本的な検索リセットやその他の機能を実装します

Vue2 の記述スタイルから Vue3 の形式に切り替えると、記述スタイルとコード構造にいくつかの変...

ファイル共有サーバーを構築するための samba + OPENldap の詳細な説明

ここでは、samba (ファイル共有サービス) v4.9.1 + OPENldap (バックエンド ...