我应该注意到,我不是一个系统pipe理员。 你会很快弄清楚。 🙂
简而言之, Apache在重负载下保持呼吸,所有进程都闲置。 这是应用程序使用的轮询服务器。 民意调查来自很多不同的端点。 如果我正在观看最高峰,每隔4-5分钟,HTTPD进程将全部闲置,同时停止stream量达10秒左右。 然后恢复。 延迟是有问题的。
Apache日志
有时候 ,但并不总是(通常在重启之后),我在error_log中得到这些消息。 大多数情况下,我在error_log中什么也看不到。
[2014年6月30日星期一17:55:17] [info]服务器似乎很忙,(你可能需要增加StartServers或者Min / MaxSpareServers),产生8个孩子,有31个闲置,总共有98个孩子 [2014年6月30日星期一17:55:18] [info]服务器似乎很忙,(你可能需要增加StartServers或者Min / MaxSpareServers),产生16个孩子,有14个闲置,总共有98个孩子 [2014年6月30日星期一17:55:44] [info]服务器似乎很忙,(你可能需要增加StartServers或者Min / MaxSpareServers),产生8个孩子,有74个空闲,总共有99个孩子 [2014年6月30日星期一17:55:54] [info]服务器似乎很忙,(你可能需要增加StartServers或者Min / MaxSpareServers),产生8个孩子,有61个空闲,总共有99个孩子 [2014年6月30日星期一17:56:00] [info]服务器似乎很忙,(你可能需要增加StartServers或者Min / MaxSpareServers),产卵8个孩子,有0个空闲,总共有97个孩子 [2014年6月30日星期一17:56:02] [info]服务器似乎很忙,(你可能需要增加StartServers或者Min / MaxSpareServers),产生16个孩子,有36个空闲,总共有99个孩子 [2014年6月30日星期一17:56:03] [info]服务器似乎很忙,(你可能需要增加StartServers或者Min / MaxSpareServers),产生32个孩子,有39个空闲,总共有99个孩子 [2014年6月30日18:08:17] [info]服务器似乎很忙,(你可能需要增加StartServers或者Min / MaxSpareServers),产生8个孩子,有18个空闲,总共有99个孩子 [2014年6月30日星期一18:08:18] [信息]服务器似乎很忙,(你可能需要增加StartServers或Min / MaxSpareServers),产生16个孩子,有63个空闲,总共有98个孩子 [2014年6月30日18:08:19] [info]服务器似乎很忙,(你可能需要增加StartServers或者Min / MaxSpareServers),产生32个孩子,有74个闲置,总共有97个孩子
Apacheconfiguration(旧configuration注释掉)
只是显示我怀疑是相关的configuration项目
#超时60
超时20
保持活跃
MaxKeepAliveRequests 1000
KeepAliveTimeout 2
IfModule prefork.c
StartServers 85
MinSpareServers 85
MaxSpareServers 100
ServerLimit 100
MaxClients 100
#StartServers 60
#MinSpareServers 60
#MaxSpareServers 85
#ServerLimit 85
#MaxClients 85
MaxRequestsPerChild 1000
/ IfModule
请注意,行为中的新旧configuration没有区别。
环境 EC2,c1.medium,mod_perl,持久数据库连接,单独的RDS服务器,在MySQL错误日志中没有显示错误,在Apache日志中没有显示错误
顺便说一下,我已经看到了安装mod-status的build议,但是我还没有弄清楚如何去做,而且如果我这样做,我不知道该找什么。
谜团已揭开。
万一发生这种情况:Apache和数据库服务器之间的networking连接(通过LAN接口在VPC内部)正在变得拥塞。 将数据库服务器升级到更大的实例解决了问题(暂时)。
背景:亚马逊每5分钟就会为您的数据库创build快照,以实现时间点恢复function。 它会在您的RDS实例上下载二进制日志来执行此操作。
每隔5分钟,二进制日志就被传输(大概是到另一个EBS),在我的情况下,传输拥塞LAN接口。 Apache每五分钟等待一次networking连接,连接就会堆积起来,最终会中止。
我把MaxClients设置为200左右
另外,我很好奇为什么最小和最大备用服务器如此之高。 我可能将MinSpareServers设置为20,将MaxSpareServers设置为30.这些是剩余的基本空闲进程的数量,apache会根据需要创build更多的MaxClients设置,并根据需求减less备用进程的数量减轻。
最后,为什么你最初创build这么多的初始服务器。 我会开始设置StartServers大约50。