Apache Benchは、Webサービスの応答時間、つまりWebサーバーのパフォーマンスをテストするための便利な小さなツールです。このツールの設定のいくつかを挙げれば、送信するリクエストの数、ターゲットURL、同時実行性の設定を指定できます。
このようなシミュレートされたワークロードは、実際のトラフィックとまったく同じデータにはなりませんが、本番環境に移行する前にテストすることをお勧めします。たぶん、アプリケーションの新しいバージョンをデプロイする前に、新しいバージョンでテストを実行し、結果を以前のテストデータと比較して、アプリケーションの処理が前のバージョンよりも遅いか速いかを確認できます。十分に計画されたテストにより、このツールはアプリケーションの潜在的なボトルネックを示すことができ、可能な最適化のためにコードを調べる必要がある興味深いポイントを提供する可能性があります。
このチュートリアルでは、Red Hat Enterprise Linux8にApacheBenchをインストールし、ApacheWebサーバーをインストールしていくつかのテストを実行します。
このチュートリアルでは、次のことを学びます。
- ApacheBenchのインストール方法
- httpd Webサーバーをインストールし、いくつかの基本的なコンテンツを追加する方法
- ウェブサーバーに対して簡単なテストを実行する方法

使用されるソフトウェア要件と規則
カテゴリ | 使用する要件、規則、またはソフトウェアバージョン |
---|---|
Red Hat Enterprise Linux 8 | |
Apache Bench 2.3 | |
rootまたはsudo を介したLinuxシステムへの特権アクセス コマンド。 | |
# –指定されたLinuxコマンドは、rootユーザーとして直接、または sudo を使用して、root権限で実行する必要があります。 コマンド$ –特定のLinuxコマンドを通常の非特権ユーザーとして実行する必要があります |
Redhat8にapacheベンチをインストールする方法ステップバイステップの説明
Apache Benchは、Apache httpd
とともにサブスクリプション管理リポジトリを有効にした後、ベースソフトウェアソースで利用できます。 Webサーバー。ツールを試すために、静的なコンテンツと php
で記述されたコンテンツの両方をウェブサーバーに追加します。 。
-
httpd-tools
にあるApacheBenchをインストールするには パッケージでは、dnf
を使用します :# dnf install httpd-tools
- テスト環境を作成するには、
ab
を使用します ツールをオンにして、phpをサポートするウェブサーバーをインストールします:# dnf install httpd php
- 静的なHTMLページを追加します
/var/www/html/index.html
次の内容で:<html> <head> <title>Title of the webpage</title> </head> <body> <p>This is a simple html page.</p> </body> </html>
そして、同じコンテンツになるが、意図的に無駄な方法でphpで書かれている別のページ。ファイルは
/var/www/html/index.php
になります 、以下の内容で:<?php echo "<html>\n"; echo "<head>\n"; echo "<title>Title of the webpage</title>\n"; echo "</head>\n"; echo "<body>\n"; echo "<p>This is a simple html page.</p>\n"; echo "</body>\n"; echo "</html>\n"; ?>
静的テキストを提供するため、必要な
echo
は1つだけであることに注意してください。 、またはphpがまったくありません。このページは、応答時間の違いを確認するためにのみ作成されています。 - Webサーバーを起動できます:
# systemctl start httpd
-
root
は必要ありません ベンチマークの特権。最初のテストでは、ab
を実行します 静的ページindex.html
に対して 、最大60秒(-t)の時間枠内で、10個の同時スレッド(-c)でページに100000要求(-n)を提供します。ラボマシンでは、この量のリクエストは1分で処理されますが、ハードウェアによってはこれでは不十分な場合があります。また、ローカルホストからベンチマークを実行することで実際のネットワークトラフィックを排除し、リクエストの実行と同じハードウェアでのサービス提供の両方の負荷をプッシュしていることにも注意してください。
$ ab -t 60 -n 100000 -c 10 http://localhost/index.html This is ApacheBench, Version 2.3 <$Revision: 1826891
gt;
Copyright 1996 Adam Twiss、Zeus Technology Ltd、http://www.zeustech.net/
Apache Software Foundationにライセンス供与、http://www.apache.org/localhostのベンチマーク(しばらくお待ちください)
10000リクエストを完了しました
20000リクエストを完了しました
30000リクエストを完了しました
40000リクエストを完了しました
50000リクエストを完了しました
60000リクエストを完了しました
70000リクエストを完了しました
80000リクエストを完了しました
90000リクエストを完了しました
100000リクエストを完了しました
100000リクエストを完了しましたサーバーソフトウェア:Apache / 2.4.35
サーバーホスト名:localhost
サーバーポート:80ドキュメントパス:/index.html
ドキュメントの長さ:116バイト同時実行レベル:10
テストにかかった時間:19.556秒
完了したリクエスト:100000
失敗したリクエスト:0
転送された合計:39600000バイト
転送されたHTML:11600000バイト
1秒あたりのリクエスト数:5113.63 [#/ sec](平均)
リクエストあたりの時間:1.956 [ms](平均)
リクエストあたりの時間:0.196 [ms](平均、すべての同時リクエスト全体)
転送速度:1977.53[キロバイト/秒]を受信接続時間(ミリ秒)
最小平均[+/- sd]中央値最大
接続:0 0 0.2 0 3
処理:0 2 0.8 2 26
待機:0 1 0.7 1 26
合計:0 2 0.8 2 26特定の時間内に処理されたリクエストの割合(ミリ秒)
50%2
66%2
75%2
80%2
90%3
95%3
98%4
99%5
100%26(最長のリクエスト)
- 2番目のテストは、同じパラメーターセットを使用して実行されますが、無駄なphpページ
index.php
に対して実行されます。 。$ ab -t 60 -n 100000 -c 10 http://localhost/index.php This is ApacheBench, Version 2.3 <$Revision: 1826891
gt;
Copyright 1996 Adam Twiss、Zeus Technology Ltd、http://www.zeustech.net/
Apache Software Foundationにライセンス供与、http://www.apache.org/localhostのベンチマーク(しばらくお待ちください)
10000リクエストを完了しました
20000リクエストを完了しました
30000リクエストを完了しました
40000リクエストを完了しました
50000リクエストを完了しました
60000リクエストを完了しました
70000リクエストを完了しました
80000リクエストを完了しました
90000リクエストを完了しました
100000リクエストを完了しました
100000リクエストを完了しましたサーバーソフトウェア:Apache / 2.4.35
サーバーホスト名:localhost
サーバーポート:80ドキュメントパス:/index2.php
ドキュメントの長さ:116バイト同時実行レベル:10
テストにかかった時間:35.064秒
完了したリクエスト:100000
失敗したリクエスト:0
転送された合計:30700000バイト
転送されたHTML:11600000バイト
1秒あたりのリクエスト数:2851.89 [#/ sec](平均)
リクエストあたりの時間:3.506 [ms](平均)
リクエストあたりの時間:0.351 [ms](平均、すべての同時リクエスト全体)
転送速度:855.01[キロバイト/秒]を受信接続時間(ミリ秒)
最小平均[+/- sd]中央値最大
接続:0 0 0.2 0 3
処理:1 3 1.2 3 27
待機:0 3 1.2 3 27
合計:1 3 1.3 3 28コード>
コード>
コード>
コード>
コード>
コード>
コード>
コード>
特定の時間内に処理されたリクエストの割合(ミリ秒)
50%3
66%4
75%4
80%4
90%5
95%6
98%7
99%7
100%28(最長のリクエスト)
結果が示すことは大きな驚きではありません。静的コンテンツは、phpインタープリターを通過する必要がある無駄なページよりもはるかに高速に提供されます。これにより、ApacheBenchツールを使用してWebサービスの応答時間に関する統計を収集する方法を簡単な例で示しました。