飞嗨,欢迎您的光临,本博所发布之文章皆为作者亲测通过,如有错误,欢迎通过各种方式指正。(本博已于2015.12.6升级到php7,运行环境php7 php-fpm + nginx1.8.0)

appache调优

Linux lf 1205℃ 0评论

appache默认的配置,对于访问量稍大的站点会hold不住的。不过,对于本博,我就是未雨绸缪啦…说不定,哪天我起床发现,耍耍一天几百万独立ip捏…

(1)Timeout 指定appache在接收请求后或发送请求内容之前的最长等待时间(秒),超过该时间,appache则放弃处理该请求,并释放连接。默认值为120,对于访问量较大的站点,值应该设的更小

(2)KeepAlive 控制appache是否允许在一个连接中有多个请求,默认为on。对于大多数论坛类型站点,通常设置为off

(3)MPM-prefork,c 默认情况下,appache使用prefork(进程)工作模式,这部分的参数设置是对appche性能影响的核心和关键。

<IfModule prefork.c>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxRequestsPerChild 0
</IfModule>

在类unix系统中,很多服务(service)的守护进程(Daemon)在启动时会创建一个进程以准备应答可能的连接请求,服务即进入了端口监听状态,当一个来自客户端的请求被发送至服务所监听的端口时,该服务进程即会处理该请求,在处理过程中,该进程处于独占状态,如果此时有其他请求到达,这些请求只能“排队”等待。这样就会导致越来越多的请求处于队列等待状态。appache使用prefork模式很好的解决了这一问题:当appache启动时,appache会启动StartServers个空闲进程同时准备接收处理请求,当多个请求到来时,StartServers会越来越少,当空闲进程减少到MinSpareServers时,appache会再启动StartServers个进程备用,appache随时在检查自己,当发现有MaxSpareServers个空闲进程时,则会自动停止关闭一些进程,这就是叫做pre-fork的原因。MaxClients指定appache在同一时间内最多允许有多少个客户端能够与其连接,如果超过MaxClients个连接,客户端将会得到一个“服务器繁忙”的错误页面。默认情况下MaxClients为15,这对一些中、大型站点是远远不够的,默认情况下MaxClients只能设定为不超过256的整数。但是,有需要完全可以随意定制,需要搭配ServerLimit来使用,简单说,ServerLimit就像是水桶,MaxClients是水。MaxClients必须小于ServerLimit。MaxRequestPerChild,该参数指定一个连接进程中有多少个线程同时工作,类似“多点同时下载”,该参数实际上是限制最多可以用几个“点”,默认为0,即为不限制。

appache调优

appache调优

转载请注明:飞嗨 » appache调优

喜欢 (0)or分享 (0)
发表我的评论
取消评论
表情
粤ICP备15018643号-1