最近一直受apache的负载问题困扰,状况是一上量(一天2500万吧)页面访问速度就奇慢无比,找了个牛人诊断,修改httpd.conf后解决问题
这次装的是apache1.3.39,直接编译安装,只带了--prefix=/usr/local/apache1339 --enable-module=so,然后安装。这里提一下,如果不装php就不需要将apache编译为支持动态模块了。
修改参数如下:
KeepAlive Off 如果动态内容较多可设置为on,这里为纯静态
MaxKeepAliveRequests 2000
KeepAliveTimeout 15
MinSpareServers 200
MaxSpareServers 400
StartServers 400
MaxClients 1000
MaxRequestsPerChild 10000
在编译前需要修改./src/include/httpd.h中HARD_SERVER_LIMIT的值为2560
最后,说一下startservers这个参数,对于繁忙的服务器,请求数量一次性会开得很多,这个操作比较耗时,建进程的速度apache好像控制了,大约1秒1个,所以调大些有好处。如果空闲了,apache 会自动杀掉一些进程,就是MinSpareServers 和MaxSpareServers 那个参数来定最大和最少的空闲数量。