
私は、16x Intel(R) Xeon(R) CPU E5-2680 v2 @ 2.80GHz と 32GiB のシステム メモリを搭載した仮想サーバーを管理しています。このサーバーは Web サーバーとして使用されており、ラッシュ アワーには 100 ~ 150 人のユーザーがいます。このような時間帯には、サーバーは着信要求を処理するのに約 5 秒かかります。ほとんど何もできません。
サーバー自体は、Apache/2.2.22、MySQL 5.5.41-0ubuntu、PHP 5.3.10-1ubuntu3.16 を実行し、もちろん CakePHP フレームワークを使用する独自に作成された Web アプリも実行します。
サーバーがビジーでないときは、mysqld は約 90% の CPU を占有し、サーバーがビジーなときは最大 350% の CPU を占有します。
$ top
top - 02:58:11 up 6 days, 15:12, 1 user, load average: 1.00, 1.00, 0.85
Tasks: 91 total, 2 running, 89 sleeping, 0 stopped, 0 zombie
Cpu(s): 6.3%us, 0.0%sy, 0.0%ni, 93.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 33554432k total, 2455720k used, 31098712k free, 0k buffers
Swap: 0k total, 0k used, 0k free, 2047796k cached
私の想定では、サーバーはすべてのリソースを使用しておらず、150 を超えるクライアントを処理できないというものでした。
ハードウェアがその数のクライアントを処理できるほど強力であれば、問題を解決するために何をしなければならないでしょうか?すごく高い読み込み速度は?