また、サーバーの負荷が大きすぎてプログラムの効率に影響を与えることもよくあるため、これをテストする必要があります。ここでは、最も一般的に使用されている Apache サーバーを例として取り上げます。
Apache サーバーには、AB (ApacheBench) というツールが付属しており、bin ディレクトリにあります。この軽量ツールを使用すると、サーバーの負荷テストを行い、高負荷下でサーバーがどのように動作するかを確認できます。 ApacheBench は、特定の URL に対する連続的なオンライン リクエストをシミュレートすることができ、同時に複数の同一のオンライン リクエストをシミュレートすることもできるため、ApacheBench を使用すると、Web サイト開発中に実際のオンライン状況をシミュレートし、シミュレートされたデータを使用することができます。サーバーの設定や手順を調整するための基礎となります。
コマンド ラインの出力:
./ab -n 合計リクエスト数
-c 同時リクエスト数
http://your_web_server/your_php_app.php
例:
./ab -n 1000 -c 50 http://www.domain.com/myapp.php
AB はhttp://www.domain.com/myappにも送信します.php 50 件の同時リクエストを合計 1000 回発行します。
テスト結果はおそらく次のようになります:
サーバー ソフトウェア: Apache/2.0.16
サーバーのホスト名: localhost
サーバーポート: 80
ドキュメントパス: /myapp.php
ドキュメントの長さ: 1311 バイト
同時実行レベル: 50
テストにかかった時間: 8.794 秒
リクエストを完了する: 1000
失敗したリクエスト: 0
合計転送量: 1754000 バイト
転送されたHTML: 1311000バイト
1 秒あたりのリクエスト数: 113.71
転送速度: 受信時 199.45 kb/s
接続時間 (ミリ秒)
minavgmax
接続: 0 0 5
処理: 111 427 550
合計: 111 427 555
myapp.php が 1 秒あたりに処理できるリクエストの数は 113.71 です。リクエストの数を増やして、サーバーがより大きな負荷に対処できるかどうかを確認してください。また、httpd.conf での MPM モジュールの選択に基づいて、Apache の MaxClients、ThreadsPerChild、MaxThreadsPerChild およびその他のパラメータを調整する必要があります。
さらに詳細な情報が必要な場合は、 www.apache.org でモジュールやサードパーティの生産性ツールなどの詳細なドキュメントを確認してください。 httpd.conf を変更した後、Apache サーバーを再起動し、AB を使用してテストします。 1 秒あたりのリクエスト数が増加または減少していることがわかります。
毎回パラメータを書き留めて、最終的に最も効率の良い構成を選択します。
AB 以外にも、優れたサーバー パフォーマンス テスト ソフトウェアが多数あることに注意してください。また、サーバーが Apache でない場合は、独自のテスト方法を見つけてください。