「ab」ツールを使用して、Apache と PHP のセットアップ (Ubuntu のデフォルト構成) をテストしています。2 つの同時接続では、かなり満足のいく結果が得られます。
ab -k -n 1000 -c 2 http://localserver/page.php
Requests per second: 184.81 [#/sec] (mean)
Time per request: 10.822 [ms] (mean)
Time per request: 5.411 [ms] (mean, across all concurrent requests)
メモリが少ない仮想マシンなので、問題ありません。ここで、より現実的なシナリオをテストしたいと思います。同時に接続された 100 人のユーザー (読み取り: 接続) にリクエストが分散されます。
ab -k -n 1000 -c 100 http://localserver/page.php
Requests per second: 60.22 [#/sec] (mean)
Time per request: 1660.678 [ms] (mean)
Time per request: 16.607 [ms] (mean, across all concurrent requests)
これははるかに悪いです。全体の 1 秒あたりのリクエスト数は大幅に減少していませんが (184 から 60 #/秒)、ユーザーの観点から見たリクエストあたりの時間は急激に増加しています (平均で 10 ミリ秒から 1.6 秒以上)。最長のリクエストは 8 秒以上かかり、Web ブラウザーを使用してローカル サーバーに手動で接続すると、テスト中に約 10 秒かかりました。
何が原因で、同時実行パフォーマンスを許容レベルに最適化するにはどうすればよいですか?
(Ubuntu Linux Server に同梱されているデフォルトの構成を使用しています。)