GNU/Linux >> Linux の 問題 >  >> Linux

ApacheベンチでWebサーバーのパフォーマンスをベンチマークする方法

あなたがウェブマスターであるならば、あなたはしばしばあなたのウェブアプリケーションのパフォーマンスに関心があるかもしれません。 「アプリケーションの負荷テストを実行するにはどうすればよいですか?」などの質問をする場合があります。または「私のアプリケーションは多くのユーザーを処理できますか?」このような場合、Apacheベンチが非常に役立ちます。 Apache Benchは、シンプルで使いやすいコマンドラインインターフェイスを使用してWebサーバーのパフォーマンスを測定するための無料のオープンソースツールです。現在のApacheインストールのパフォーマンスを理解するのに役立ちます。

このチュートリアルでは、LinuxにApacheBenchをインストールして使用する方法を示します。

前提条件
  • Atlantic.Netクラウドプラットフォーム上の新しいUbuntu18.04VPS。
  • ルートパスワードはサーバーで構成されています。
ステップ1-Atlantic.Netクラウドサーバーを作成する

まず、Atlantic.Netクラウドサーバーにログインします。少なくとも1GBのRAMを搭載したオペレーティングシステムとしてUbuntu18.04を選択して、新しいサーバーを作成します。 SSH経由でクラウドサーバーに接続し、ページの上部で強調表示されているクレデンシャルを使用してログインします。

Ubuntu 18.04サーバーにログインしたら、次のコマンドを実行して、ベースシステムを最新の利用可能なパッケージで更新します。

apt-get update -y
ステップ2–Apacheベンチをインストールする

ApacheBenchはApacheWebサーバーパッケージの一部であるため、Apache Webサーバーがシステムにインストールされている場合は、Apacheベンチをインストールする必要はありません。

Ubuntu / Debianオペレーティングシステムの場合、次のコマンドを使用してApacheBenchツールをインストールします。

apt-get install apache2-utils -y

RHEL / CentOSオペレーティングシステムの場合、次のコマンドを使用してApacheBenchツールをインストールします。

yum install httpd-tools -y

次のコマンドを使用して、Apacheベンチツールで使用可能なすべてのオプションを表示できます。

ab

次の画面が表示されます。

最も一般的に使用されるオプションの簡単な説明を以下に示します。

  • -n: Webサーバーに送信される接続要求の数を指定します。
  • -c: Webサーバーに送信される同時接続要求の数を指定します。
  • -t: abコマンドがリクエストの送信を続行する秒数を指定します。

注: 「接続がタイムアウトしました」というエラーが発生する場合があります。この理由は、ファイアウォールによってブロックされた接続要求、またはApacheWebサーバーがそれ以上の要求を処理できなかったためです。

ステップ3–ストレステストの実行

この時点で、Apacheベンチツールがインストールされます。これで、ローカルまたはドメイン名を使用して、Webサーバーに対してストレステストを実行できます。

300の同時接続を介して800のリクエストを送信することにより、ApacheWebサーバーに対してストレステストを実行してみましょう。

ab -n 800 -c 300 http://your-domain-name/

これは、以下に示すように、同時実行数300の800リクエストに対して実行されます。

This is ApacheBench, Version 2.3 <$Revision: 1807734 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking localhost (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
Finished 800 requests
Server Software:        Apache/2.4.29
Server Hostname:        localhost
Server Port:            80
Document Path:          /
Document Length:        10918 bytes
Concurrency Level:      300
Time taken for tests:   0.459 seconds
Complete requests:      800
Failed requests:        0
Total transferred:      8953600 bytes
HTML transferred:       8734400 bytes
Requests per second:    1743.53 [#/sec] (mean)
Time per request:       172.064 [ms] (mean)
Time per request:       0.574 [ms] (mean, across all concurrent requests)
Transfer rate:          19056.29 [Kbytes/sec] received
Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    6   7.8      0      20
Processing:     8   92 124.3     44     437
Waiting:        4   92 124.4     43     437
Total:         22   98 128.9     44     453
Percentage of the requests served within a certain time (ms)
  50%     44
  66%     50
  75%     53
  80%     56
  90%    435
  95%    445
  98%    450
  99%    452
 100%    453 (longest request)

上記の出力では、Apacheが1秒あたり1743.53のリクエストを処理し、合計リクエストを処理するのに合計0.459秒かかったことがわかります。

Nginxウェブサーバーに対して別のストレステストを実行し、300の同時接続で800のリクエストを送信してApacheの結果と比較してみましょう。

ab -n 800 -c 300 http://your-domain-name/

次の出力が表示されます。

This is ApacheBench, Version 2.3 <$Revision: 1807734 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking localhost (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
Finished 800 requests
Server Software:        nginx/1.14.0
Server Hostname:        localhost
Server Port:            80
Document Path:          /
Document Length:        10918 bytes
Concurrency Level:      300
Time taken for tests:   0.184 seconds
Complete requests:      800
Failed requests:        0
Total transferred:      8930400 bytes
HTML transferred:       8734400 bytes
Requests per second:    4354.95 [#/sec] (mean)
Time per request:       68.887 [ms] (mean)
Time per request:       0.230 [ms] (mean, across all concurrent requests)
Transfer rate:          47474.91 [Kbytes/sec] received
Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        1   12   7.5      9      32
Processing:     5   33  12.8     30      56
Waiting:        4   26  12.9     22      49
Total:         15   46  13.6     46      70
Percentage of the requests served within a certain time (ms)
  50%     46
  66%     56
  75%     58
  80%     60
  90%     64
  95%     66
  98%     70
  99%     70
 100%     70 (longest request)

上記の出力では、Apacheが1秒あたり4354.95のリクエストを処理し、合計リクエストを処理するのに合計0.184秒かかったことがわかります。

NginxはApacheよりも多くのリクエストを処理できることがわかります。両方のサーバーの結果を比較すると、Webアプリケーションにどちらを選択するかがわかります。

結論

上記のガイドでは、ApacheBenchを使用してWebサーバーのパフォーマンスをテストする方法を学びました。これで、Apache Benchツールを探索し、さまざまなオプションを使用して実行して、Webサーバーのパフォーマンスを測定できます。 Atlantic.NetのVPSホスティングで今すぐお試しください!


Linux
  1. ApacheWebサーバーを構成する方法

  2. ApacheWebサーバーで複数のWebサイトを構成する方法

  3. Centos8にApacheWebサーバーをインストールする方法

  1. CentOS7にApacheWebサーバーをインストールする方法

  2. UbuntuからApacheWebサーバーを削除する方法

  3. UbuntuにApacheWebサーバーをインストールする方法

  1. RHEL8でLet'sEncryptを使用してApacheWebサーバーを保護する方法

  2. LinuxにApacheWebサーバーをインストールする方法

  3. Apacheを使用してUbuntuサーバーでWordPressをセットアップする方法