ウェブサーバ - パフォーマンスチェック - Apache Bench

クラウディア 
1. 概要
2. 使い方
3. 使ってみる

1. 概要

 「Apache」には、「Apache Bench」という、ベンチマークテスト用のプログラムが用意されています。  「Apache」をインストールすれば、漏れなくついてくるはず。  本ページは、下記のサイトを参考にさせていただきました。
Apache Bench でサクッと性能テスト
 本ページの主な内容は、ほぼ、参考サイトの丸写しであります(笑)。

2. 使い方

 コマンドプロンプトで

ab [オプション] 対象URL
 と入力します。  対象とする「URL」は、必ず自分のものとすること。  他人のサイトには、向けないでください。「DOS 攻撃」とみなされます。というか、「DOS 攻撃」です。  オプションは、以下のようになります。
  オプション     意味    備考 
-n 数値 リクエストの総数を数値で指定
-c 数値 同時に発行するリクエストの数を数値で指定
-t 数値 サーバからのレスポンスの待ち時間(秒)を数値で指定
-A ユーザー名:パスワード ベーシック認証が必要なコンテンツへのアカウント情報
-P ユーザー名:パスワード 認証の必要なプロキシを通じる場合のアカウント情報
-X プロキシサーバ名:ポート番号 プロキシ経由でのリクエストの指定
-V バージョン表示
-h ヘルプ表示

 大概のサイトで、例として出しているのが


ab -n 1000 -c 100 http://127.0.0.1/
 ですにゃ。  リクエスト 1000 回を、100 個ずつ発行、ってことですにゃ。  「URL」はともかくとして、大概のサイトで、この値を使用しています。  結果をひとさまと比較するにもベースとなる値が同じ方が比較しやすいので、ひとさまとの比較にはこの値を使うのがいいかな・・・と。  負荷を調べて、サーバの「threshold」には、値を増やしていって、エラーが出るあたりの値を見ることになります。

3. 使ってみる

 テストマシンでやってみます。  「FreeBSD 13.0 RELEASE」へインストールしただけ。  「apache24-2.4.48」。  「index.html」は「It's works」だけの、生まれたばかりの環境です。

ab -n 1000 -c 100 https://127.0.0.1/
 結果は、こんなの・・・。

This is ApacheBench, Version 2.3 <$Revision: 1879490 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking 127.0.0.1 (be patient)
Completed 100 requests
Completed 200 requests
Completed 300 requests
Completed 400 requests
Completed 500 requests
Completed 600 requests
Completed 700 requests
Completed 800 requests
Completed 900 requests
Completed 1000 requests
Finished 1000 requests


Server Software:        Apache
Server Hostname:        127.0.0.1
Server Port:            443
SSL/TLS Protocol:       TLSv1.2,ECDHE-RSA-AES256-GCM-SHA384,2048,256
Server Temp Key:        X25519 253 bits

Document Path:          /
Document Length:        45 bytes

Concurrency Level:      100
Time taken for tests:   1.032 seconds
Complete requests:      1000
Failed requests:        0
Total transferred:      275000 bytes
HTML transferred:       45000 bytes
Requests per second:    969.14 [#/sec] (mean)
Time per request:       103.184 [ms] (mean)
Time per request:       1.032 [ms] (mean, across all concurrent requests)
Transfer rate:          260.27 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        3   94  15.8     98     108
Processing:     2    3   0.9      3       9
Waiting:        0    2   0.9      2       6
Total:         10   97  15.9    101     112

Percentage of the requests served within a certain time (ms)
  50%    101
  66%    103
  75%    104
  80%    104
  90%    105
  95%    106
  98%    107
  99%    108
 100%    112 (longest request)
 「Server Software」が書いてある集団は、説明不要かと思います。  ようわからんところも、多々ありますが・・・。  着目すべきは、以下の個所。  「Complete requests」が、成功裏に終わったリクエスト数。  「Failed requests」が、失敗したリクエスト数。  失敗したリクエスト数が、あれば、この数値では、「threshold」を超えているので、サーバがさばききれないということになります。  値を調整して、自分のサーバの「threshold」を知っておいた方がいいかもしれません。  「Total transferred」は、全データのバイト数かしら?  「HTML transferre」は、全データのバイト数のうち、「HTML」コンテンツのバイト数かしら?  「Requests per second」は、1秒に処理できるリクエスト数。  この値が、大きいほど性能的に喜ばしいことになります。  「Time per request」は、リクエストあたりの処理時間です。  2行ありますが、上がトータルの処理時間、下が1リクエストあたりの処理時間になります。  この値が、小さいほど性能的に喜ばしいことになります。
ハイスピードプラン高速大容量レンタルサーバ10G