我管理一台虚拟服务器,该服务器有 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 个客户端。
如果硬件足够强大,可以处理那么多客户端,我该怎么做才能修复很高加载速度?