はApache Bench(アパッチ ベンチ)
ApacheWebサーバのインストール時に同時にインストールされ、abコマンドとして提供されている。
Windowsの場合はab.exe、Mac OS は、標準でApacheWebサーバーがインストールされているので、ab コマンドを普通に使用可能だ。。
Debian に Apache 主な機能と用途
- 負荷テスト: サーバーがどれだけの同時アクセスに耐えられるかをテストできます。
- パフォーマンス測定: 特定のページの応答時間や、リクエストの処理能力を測定します。
- ベンチマーク: 異なるサーバー設定やWebサイトの変更が、パフォーマンスにどのような影響を与えるかを比較するために使えます。
Debian に Apache (httpd) をインストール
Webサーバー Nginx を運用しているサーバーにはインストールしない方が良さそうです。
apt update
apt install apache2
webサーバの性能テスト
WEBページをブラウザで確認できるPCから行う方が良いだろう。
具体的には、Windows PC や MacOS がら ab コマンドを使用する。
MacOSの場合は、
ターミナルを起動すれば、ターミナルコマンドを使用できるので、とても便利です。
Apache Benchの使い方
実行コマンド
ab -n [リクエストの総数] -c [コネクション数(並列実行数)] [URL]
実行結果
ab -n 500 -c 100 https://example.com/
500回のリクエストを10回の並列処理で実行する
実際のコマンド
MacOS のターミナルから
% ab -n 500 -c 100 https://example.com/
This is ApacheBench, Version 2.3 <$Revision: 1913912 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking example.com (be patient)
Completed 100 requests
Completed 200 requests
Completed 300 requests
Completed 400 requests
Completed 500 requests
Finished 500 requests
Server Software: nginx/1.22.1
Server Hostname: example.com
Server Port: 443
SSL/TLS Protocol: TLSv1.2,ECDHE-ECDSA-AES256-GCM-SHA384,256,256
Server Temp Key: ECDH X25519 253 bits
TLS Server Name: example.com
Document Path: /
Document Length: 70835 bytes
Concurrency Level: 100
Time taken for tests: 1.766 seconds
Complete requests: 500
Failed requests: 0
Total transferred: 35605000 bytes
HTML transferred: 35417500 bytes
Requests per second: 283.07 [#/sec] (mean)
Time per request: 353.271 [ms] (mean)
Time per request: 3.533 [ms] (mean, across all concurrent requests)
Transfer rate: 19684.87 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 38 132 72.0 108 293
Processing: 38 172 52.6 179 390
Waiting: 6 31 15.6 33 104
Total: 143 305 50.7 288 564
Percentage of the requests served within a certain time (ms)
50% 288
66% 291
75% 302
80% 323
90% 364
95% 403
98% 503
99% 551
100% 564 (longest request)
Concurrency Level : 同時に送信リクエスト数
Time taken for tests : テストにかかった合計時間
Complete requests : 正常に完了した総リクエスト数
Failed requests : 失敗したリクエスト数
Write errors : 書き込みエラー数
Requests per second : 1秒あたりに処理されたリクエスト数、この数値が高いほど、サーバーの性能が良いことを示します。
Time per request : 1つのリクエストを処理するのにかかった平均時間(ミリ秒)。
Time per request : リクエストの平均処理時間(mean, across all concurrent requests)
Transfer rate : 1秒あたりに受信された容量
Connection Times (ms) : 下記の最小値、平均、最大値、平均を記載
Connect : 接続
Processing : 処理
Waiting : 待ち時間
Total : 集計
Percentage of the requests served within a certain time (ms) : リクエストが指定された時間内に完了した割合。例えば、「90% 365」は、90%のリクエストが365ミリ秒以内に完了したことを意味します。