Apache的httpd进程数量是个老问题,最开始使用Linux独立服务器的时候就摸索修改过。后来新购入服务器托管、租用国外服务器都是硬件配置相当强的,这个地方也都修改过。
不过前一阵子搬迁到阿里云服务器的时候,同事并没有修改这个地方,部分网站搬迁后感觉变慢了,而带宽、CPU等资源都没有用充分,后来在阿里云监控中检查发现httpd进程会达到一个限制平顶,再才排查原来是httpd最大连接数量没有修改。
最近又搬迁网站增加了阿里云服务器,以后估计还会搬迁、增加,所以专门记录在博客中:
步骤一:先修改./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 20
MinSpareServers 20
MaxSpareServers 30
ServerLimit 500
MaxClients 500
MaxRequestsPerChild 10000
注意:1、一定要加ServerLimit,并且要在MaxClients前面,且数值要比MaxClient的值大;
2、重启apache,仅仅/bin/apachectl restart无效,
需要先apachectl stop 然后再apachectl start
反复执行pgrep httpd|wc -l 来观察连接数。
更多详细资料可以参考:《Apache优化:修改最大并发连接数》。
评论4
祁老师,ServerLimit设置的是500
祁老师,ServerLimit设置的是500,MaxClients也是500,ServerLimit并没有设置的比MaxClients大啊?我理解是大于等于的意思
你好!我理解是ServerLimit大于等于MaxClients的意思,用一样的就可以。
OK,明白了。谢谢 动态网站优化是一项需要不断钻研的工作。
OK,明白了。谢谢 动态网站优化是一项需要不断钻研的工作。确实是这样,各方面都要专研
Drupal网站的性能优化涉及到网站思路、逻辑设计、网络架构、硬件配置、操作系统、数据库、程序优化等各方面的问题,而且随着网站的发展需要不断调整,我也总是在这方面花费很多时间精力!