あなたがウェブマスターであるならば、あなたはしばしばあなたのウェブアプリケーションのパフォーマンスに関心があるかもしれません。 「アプリケーションの負荷テストを実行するにはどうすればよいですか?」などの質問をする場合があります。または「私のアプリケーションは多くのユーザーを処理できますか?」このような場合、Apacheベンチが非常に役立ちます。 Apache Benchは、シンプルで使いやすいコマンドラインインターフェイスを使用してWebサーバーのパフォーマンスを測定するための無料のオープンソースツールです。現在のApacheインストールのパフォーマンスを理解するのに役立ちます。
このチュートリアルでは、LinuxにApacheBenchをインストールして使用する方法を示します。
- Atlantic.Netクラウドプラットフォーム上の新しいUbuntu18.04VPS。
- ルートパスワードはサーバーで構成されています。
まず、Atlantic.Netクラウドサーバーにログインします。少なくとも1GBのRAMを搭載したオペレーティングシステムとしてUbuntu18.04を選択して、新しいサーバーを作成します。 SSH経由でクラウドサーバーに接続し、ページの上部で強調表示されているクレデンシャルを使用してログインします。
Ubuntu 18.04サーバーにログインしたら、次のコマンドを実行して、ベースシステムを最新の利用可能なパッケージで更新します。
apt-get update -y
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サーバーがそれ以上の要求を処理できなかったためです。
この時点で、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ホスティングで今すぐお試しください!