我正在一个交通繁忙的网站上投放大量动态内容,大部分是用户生成的。
该服务器是专用服务器,总共有4个Intel®Xeon®CPU X3210 @ 2.13GHz处理器。考虑到服务器具有4GB的RAM并且MySQL数据库在单独的服务器上运行,我需要知道ServerLimit和MaxClients apache指令的最佳值。面板是带有CentOS的DirectAdmin。
以下是我当前的指令,但是在用户超过5k的高峰时段,注意到了一个重要的滞后-这并不是MySQL的全部错,因为页面似乎生成速度很快(我实现了页面生成时间计数器),但是时间长连接延迟,直到页面开始响应并发送到浏览器为止。
<IfModule prefork.c>
StartServers 800
MinSpareServers 20
MaxSpareServers 60
ServerLimit 900
MaxClients 900
MaxRequestsPerChild 2000
</IfModule>
Timeout 90
KeepAlive On
KeepAliveTimeout 5
我应该提到的是,使用top命令监视服务器时,高峰时段的CPU使用率绝不会超过20%〜30%。那时MySQL服务器的使用率也达到30%到50%,我一直在努力解决缓慢的查询问题,但这是另一个问题。我知道这不是数据库瓶颈,因为在高峰时段加载静态页面也需要很长时间。
感谢您提供任何优化这些值的技巧。