Apache性能优化Maxclients
apache的优化与配置
Timeout该参数指定Apache在接收请求或发送所请求内容之前的最长等待时间(秒),若超过该时间Apache则放弃处理该请求,并释放连接。该参数默认值为120,推荐设置为60,对于访问量较大的网站可以设置为30
KeepAlive该参数控制Apache是否允许在一个连接中有多个请求,默认打开。但对于大多数论坛类型站点来说,通常设置为off以关闭该支持。
MPM-prefork.c在默认情况下Apache使用Prefork(进程)工作模式,可以说这部分的参数设置是对Apache性能影响的核心和关键。
查看当前apache连接数
pgrep httpd|wc -l
计算httpd占用内存的平均数
ps aux|grep -v grep|awk '/httpd/{sum+=$6;n++};END{print sum/n}'
查看当前内存使用
free
本文的所有设置均在httpd.conf文件中(默认路径/etc/httpd/conf/httpd.conf),首先,为确保服务器安全,我们需要关闭显示apache系统版本号。
在httpd.conf中:
找到ServerSignature ,将值On改为Off:
ServerSignature Off
找到ServerTokens,将值Full改为Prod
ServerTokens Prod
针对apache的优化:
找到<IfModule prefork.c>
其中配置的意义:
StartServers :Apache服务启动时进程个数
MinSpareServers:Apache服务在运行过程中存留最少的进程个数,如进程个数少于这个值,母进程会每秒创建一个httpd进程,直到等于该值。
MaxSpareServers:Apache服务在运行过程中空闲时存留的最多进程个数。如果进程个数多于这个值,母进程会每秒杀死一个httpd进程,直到等于该值。
ServerLimit、MaxClients:Apache服务能接受同时连接的请求个数,如超过该值,则需排队等候。Apache服务进程数的最大值由MaxClients控制,在Apache1.3中最大只能设置为256,但在Apache2.0中,可以通过在配置开头增加ServerLimit项目来突破256的限制,此时必须 MaxClients ≤ ServerLimit ≤ 20000。
MaxRequestsPerChild:每个httpd进程每接受该值数量的请求链接后就会杀死自己,如有需要,母进程会通过上边的规则重建子进程。
针对512M内存服务器的配置如下:
StartServers 5
MinSpareServers 5
MaxSpareServers 10
ServerLimit 256
MaxClients 256
MaxRequestsPerChild 100
针对1GB内存服务器的设置如下:
StartServers 10
MinSpareServers 10
MaxSpareServers 25
ServerLimit 256
MaxClients 256
MaxRequestsPerChild 1000//或者设置为0,即不限制
原创文章如转载,请注明出处,本文首发于彭超的博客
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。