点评:Linux下的Apache并发性不是很高,约3K的方式,常见的服务器将有不同程度的问题。Apache并发控制主要是prefork和工人21控制。我们可以用我确定目前使用prefork MPM。C或以下的工人配置Apache prefork C.。下面是我的优化




Linux下的Apache并发性不是很高,约3K的方式,常见的服务器将有不同程度的问题。Apache并发控制主要是prefork和工人21控制。我们可以用我确定目前使用prefork MPM。C、工人C.或低于prefork Apache的配置。下面是我优化的参数。

这个就不用#参数如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

一个非零的值设置maxrequestsperchild有两个好处:
1。可以防止(意外)内存无限泄漏,从而消耗内存。
2。给过程提供有限的生命,这有助于减少服务器负载减少时活动进程的数量。
操作模式uff1a
一个单独的控制进程(父进程)负责生产过程,用于监控请求和回应。Apache总是试图保留一些备用(备用)或空闲的子进程来满足未来的要求。在这种方式中,客户端不需要等待子进程代之前得到服务。在Unix系统中,父进程通常运行在根为80端口,和产生的Apache子进程通常运行在低特权用户。用户和组指令用于设置子进程的低特权用户。用户运行的子进程必须阅读他们的服务内容的权限,但他们必须尽可能少的权限的其他资源服务内容之外。
我们的调整往往需要在服务器的数量一看过程(即,Apache可以在prefork模式处理并发请求数):
# ps -ef grep httpd wc -我| |
结果是当前Apache可以处理的并发请求数,并且根据负载情况自动调整这个值Apache。
检查Apache的并发请求数及其TCP连接状态:
# netstat -n awk ' ^ TCP / / |;{ + +的{ } { }结束美元NF为(A S)打印,{一} }我的;
上面这句话让我想起了Sina friend Zhang的宴会。
返回结果示例:
last_ack 5
syn_recv 30
建立了1597
fin_wait1 51
fin_wait2 504
time_wait 1057
的syn_recv表示等待处理的请求数;建立显示正常数据传输状态;time_wait指出处理等待时间结束的请求数。
状态:描述
关闭:无连接是活动的或正在进行的。
监听:服务器正在等待进入呼叫。
syn_recv:连接请求到达,等待确认
syn_sent:应用已经开始,打开一个连接
建立:正常数据传输状态
fin_wait1:应用说了
fin_wait2:对方已同意释放
itmed_wait:等待所有组死
结束:双方试图同时关闭。
time_wait:对方已初始化的释放
last_ack:等待所有组死
webbench可用于Linux下的压力测试。