
我管理一個虛擬伺服器,配備 16 個 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 個客戶端。
如果硬體夠強大來處理這麼多客戶端,我需要做什麼來修復這個問題很高加載速度?