首先需要确定服务器httpd的工作模式呢,可通过执行 apachect2 -l 来查看:
可以看到有prefork.c,因此httpd是工作在prefork并发模式。
打开apache2的配置文件sudo vi /etc/apache2/apache2.conf
apache2的并发控制模式,包括prefork和worker的部分修改为:
注意,MaxClients默认最大为250,若要超过这个值就要显式设置ServerLimit,且ServerLimit要放在MaxClients之前,值要不小于MaxClients,不然重启时会有提示。重启apache2后,通过反复执行pgrep httpd|wc -l来观察连接数,可以看到连接数在达到MaxClients的设值后不再增加,但此时访问网站也很流畅,那就不用贪心再设置更高的值了,不然以后如果网站访问突增不小心就会耗光服务器内存,可根据以后访问压力趋势及内存的占用变化再逐渐调整,直到找到一个最优的设置值。
MaxRequestsPerChild不能设置为0,可能会因内存泄露导致服务器崩溃。
附:常用参数解释
<IfModule prefork.c>
#有这个参数就不必像apache1一样修改源码才能修改256客户数的限制,听讲要放到最前面才会生效,2000是这个参数的最大值
ServerLimit 2000
#指定服务器启动时建立的子进程数量,prefork默认为5。
StartServers 25
#指定空闲子进程的最小数量,默认为5。如果当前空闲子进程数少于MinSpareServers ,那么Apache将以最大每秒一个的速度产生新的子进程。此参数不要设的太大。
MinSpareServers 25
#设置空闲子进程的最大数量,默认为10。如果当前有超过MaxSpareServers数量的空闲子进程,那么父进程将杀死多余的子进程。此参数不要设 的太大。如果你将该指令的值设置为比MinSpareServers小,Apache将会自动将其修改成"MinSpareServers+1"。
MaxSpareServers 50
#限定同一时间客户端最大接入请求的数量(单个进程并发线程数),默认为256。任何超过MaxClients限制的请求都将进入等候队列,一旦一个链接被释放,队列中的请求将得到服务。要增大这个值,你必须同时增大ServerLimit 。
MaxClients 2000
#每个子进程在其生存期内允许伺服的最大请求数量,默认为10000.到达MaxRequestsPerChild的限制后,子进程将会结束。如果MaxRequestsPerChild为"0",子进程将永远不会结束。
MaxRequestsPerChild 10000
</IfModule>
将MaxRequestsPerChild设置成非零值有两个好处:
1.可以防止(偶然的)内存泄漏无限进行,从而耗尽内存。
2.给进程一个有限寿命,从而有助于当服务器负载减轻的时候减少活动进程的数量。
工作方式:
一个单独的控制进程(父进程)负责产生子进程,这些子进程用于监听请求并作出应答。Apache总是试图保持一些备用的 (spare)或者是空闲的子进程用于迎接即将到来的请求。这样客户端就不需要在得到服务前等候子进程的产生。在Unix系统中,父进程通常以root身份运行以便邦定80端口,而 Apache产生的子进程通常以一个低特权的用户运行。User和Group指令用于设置子进程的低特权用户。运行子进程的用户必须要对它所服务的内容有读取的权限,但是对服务内容之外的其他资源必须拥有尽可能少的权限。
我们调优常常要查看httpd进程数(即prefork模式下Apache能够处理的并发请求数):
#ps -ef | grep httpd | wc -l
出现的结果,就是当前Apache能够处理的多少个并发请求,这个值Apache根据负载情况自动调.
转载:http://blog.sina.com.cn/s/blog_6826662b01011u1n.html
相关推荐
Apache最大连接数设置会影响到apache的并发,如果对apache的并发要求比较高的话,可以自己进行设置
MaxClients n 1、apache1.x n是整数,表示最大连接数,取值范围在1和256之间,如果要让apache支持更多的连接数,那么需要修改源码中的httpd.h文件,编辑/httpd-2.0.59/include/httpd.h中的HARD_SERVER_LIMIT值改大...
NULL 博文链接:https://callan.iteye.com/blog/504447
APACHE 流量控制及连接数限制的设置方法,经过测试可以用,写成txt文档,供大家分享。
查看apache连接的连接并发数 查看httpd进程数(即prefork模式下Apache能够处理的并发请求数)
Apache中配置最大并发用户数 tcp连接设置.docx
root@ubuntu:/etc/apache2# pwd /etc/apache2 root@ubuntu:/etc/apache2# vim ports.conf 8 NameVirtualHost *:81
不过,Apache的使用者们早已开发出了mod_limitipconn和mod_bandwidth两个模块,来控制http的并发 连接数和用户所能够使用的带宽,本文将以RedHat Linux 7.3+Apache 1.3.7来说明它们的使用方法。
ubuntu下django+apache+mod_wsgi部署。我的测试成功了!
Ubuntu下Apache配置很全面的介绍!相信你的眼光。
用这些文件可以在ubuntu上搭建apache web服务器 。
在Ubuntu中安装apache 安装指令: sudo apt-get install apache2 安装结束后: 产生的启动和停止文件是:/etc/init.d/apache2 启动: sudo apache2ctl -k start 停止: sudo apache2ctl -k stop 重新启动: sudo...
ubuntu linux下安装apache。
ubuntu linux中配置svn+apache+ssl
ubuntu linux 下apache与tomcat的整合.txt
root@ubuntu:/etc/apache2# pwd /etc/apache2 root@ubuntu:/etc/apache2# vim ports.conf 8 NameVirtualHost *:81
讲述在Ubuntu系统中安装Apache2
主要介绍了apache time_wait连接数太多问题解决方法,本文使用调整内核参数来解决,需要的朋友可以参考下
总结了ubuntu下配置apache服务器的方法,步骤
ubuntu mysql apache2 tomcat 安装配置