开发者社区> 问答> 正文

服务器的apache配置问题

服务器现在用的是apache+mysql+php


现在服务器表现比较奇怪,比如现在查看apache实时并发是200左右,内存还有空闲。
但是mysql的cpu占用率很高,写磁盘很频繁。如下图:






这种情况是我改了apache的并发数之后出现的。
我是修改了httpd.conf的这一部分
<IfModuleprefork.c>

StartServers       8
MinSpareServers    5
MaxSpareServers   20
ServerLimit      556
MaxClients       556
MaxRequestsPerChild  4000
</IfModule>
把ServerLimit  和  MaxClients 改大了,然后mysql就cpu占用率很高,磁盘写入频繁。
如果apache并发到了500左右,反而cpu占用和磁盘写入正常了。


这是什么原因呢?

展开
收起
datassss 2014-05-30 10:27:23 8014 0
3 条回答
写回答
取消 提交回答
  • Re服务器的apache配置问题
    元芳你怎么看
    2014-05-30 17:43:45
    赞同 展开评论 打赏
  • 服务器现在用的是apache+mysql+php
    2014-05-30 14:35:56
    赞同 展开评论 打赏
  • 元芳,阿里云云栖论坛总版主,phpwind官方论坛管理员,社区论坛领域应用专家。长期活跃在社区论坛建站领域,对各类社区论坛程序颇有研究!乐于交友,热心助人,以帮助和服务站长朋友为宗旨,帮助数以千计的站长朋友顺利建站!
    MaxClients是这些指令中最为重要的一个,设定的是 Apache可以同时处理的请求,是对Apache性能影响最大的参数。其缺省值150是远远不够的,如果请求总数已达到这个值(可通过ps -ef|grep httpd|wc -l来确认),那么后面的请求就要排队,直到某个已处理请求完毕。这就是系统资源还剩下很多而HTTP访问却很慢的主要原因。虽然理论上这个值越大,可以处理的请求就越多,但Apache默认的限制不能大于256。ServerLimit指令无须重编译Apache就可以加大MaxClients。

    注意,虽然通过设置ServerLimit,我们可以把MaxClients加得很大,但是往往会适得其反,系统耗光所有内存。以一台服务器为例:内存2G,每个apache进程消耗大约0.5%(可通过ps aux来确认)的内存,也就是10M,这样,理论上这台服务器最多跑200个apache进程就会耗光系统所有内存,所以,设置MaxClients要慎重。

    -------------------------

    以上,源自http://blog.csdn.net/parine26/article/details/4162455

    2014-05-30 11:17:56
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
如何运维千台以上游戏云服务器 立即下载
网站/服务器取证 实践与挑战 立即下载
ECS计算与存储分离架构实践 立即下载

相关镜像