负载图上图。 找了半天的原因。做了一些优化: 优化完成的时候访问量已经没那么高了。所以也不知道效果到底如何。看看以后效果吧。
[root@localhost ~]# netstat -an | grep ESTABLISHED | wc -l
210 已连接数 [root@localhost ~]# ps aux|grep httpd|wc -l 55 进程数 [root@localhost ~]# ps -ef|grep httpd|wc -l 55 apache 能处理的数 [root@localhost ~]# netstat -nat|grep -i "80"|wc -l 698 网络请求数
实时检测HTTPD连接数:
watch -n 1 -d "pgrep httpd|wc -l"
先修改./apache/conf/httpd.conf文件。
# vi httpd.conf 将“#Include conf/extra/httpd-mpm.conf”前面的 # 去掉。 保存。 二:再修改./apache/conf/extra/httpd-mpm.conf文件。 # vi httpd-mpm.conf 找到<IfModule mpm_prefork_module> 这一行 原: <IfModule mpm_prefork_module> StartServers 5 MinSpareServers 5 MaxSpareServers 10 MaxClients 150 MaxRequestsPerChild 0 </IfModule> 修改后
<IfModule mpm_prefork_module>
StartServers 10 MinSpareServers 10 MaxSpareServers 15 ServerLimit 2000 MaxClients 1500 MaxRequestsPerChild 10000 </IfModule>
当Apache被启动时,Apache会自动创建StartServers个进程,并且尽力将空闲进程数保持在MinSpareServers和MaxSpareServers之间。
(责任编辑:好模板)如果空闲进程小于MinSpareServers,Apache将会以大约每秒1个的速度新建进程。 如果空闲进程小于MaxSpareServers,Apache将会删除多余的空闲进程,释放服务器资源。 进程数的最大值由MaxClients控制,在Apache1.3中最大只能设置为256,但在Apache2.0中,可以通过在配置开头增加ServerLimit项目来突破256的限制,此时必须MaxClients ≤ ServerLimit ≤ 20000 MaxRequestsPerChild用来控制每个进程在处理了多少次请求之后自动销毁,这个参数可以设置为0表示无限(即不销毁进程)。 |