プログラムサーバー
また、サーバーの負荷が大きすぎてプログラムの効率に影響を与えることもよくあるため、これをテストする必要があります。ここでは、最も一般的に使用されている Apache サーバーを例に挙げます。
ApacheサーバーにはAB(ApacheBench)というツールが付属しており、binディレクトリにあります。この軽量ツールを使用すると、サーバーの負荷テストを行い、高負荷下でサーバーがどのように動作するかを確認できます。 ApacheBench は、特定の URL に対する継続的なオンライン リクエストをシミュレートすることができ、同時に複数の同一のオンライン リクエストをシミュレートすることもできるため、ApacheBench を使用すると、Web サイト開発中に実際に起こり得るオンライン状況をシミュレートし、シミュレートされたデータを使用することができます。サーバーの設定や手順を調整するための基礎として使用されます。
コマンドラインでの出力:
./ab -nnumber_of_total_requests
-cnumber_of_simultaneous_requests
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 の同時リクエストを発行します (合計 1,000 回)。
テスト結果は次のようになります:
サーバー ソフトウェア: Apache/2.0.16
サーバー ホスト名: localhost
サーバー ポート: 80
ドキュメント パス: /myapp.php
ドキュメントの長さ: 1311 バイト
同時実行レベル: 50
テストにかかった時間:8.794秒
コンプレテリクエスト:1000
Failedリクエスト:0
Total転送:1754000バイト
HTML転送:1311000バイト
レクエスト133.71
転移率:199.45 kb/s受信時間(MS)(MS)
最小平均最大数
接続: 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 でない場合は、独自のテスト方法を見つけてください。