我在高峰时间的间歇性时间里,在工作中经历了高延迟的情况下运行Web服务器。 据Firebug说,高延迟总是发生在第一个请求(请求页面)。 在第一个响应回来之后,其他所有内容都会快速加载。 我正在和Web服务器在同一个networking上遇到这个问题。 在高峰期,我们有大约1200个并发连接。
我一直在对MaxClients指令进行大量研究,并使用“经验法则”来确定要使用的值(400)。 每个httpd进程平均为25mb左右。 我们有一个2gig的连接,这个web服务器服务于我们的组织。 此外,Web服务器是一个具有4个专用核心和12GB内存的VM,运行RHEL 5.6和apache。
在高峰时段有400个MaxClients,我经历了访问Web服务器的持续超时。 当我将其设置为1000这样的高数字时,似乎减轻了超时,但我仍然得到间歇性的高延迟初始响应。 任何人都可以阐明我可以做些什么来弥补这个问题?
Timeout 10 KeepAlive On MaxKeepAliveRequests 100 KeepAliveTimeout 15 <IfModule prefork.c> StartServers 20 MinSpareServers 5 MaxSpareServers 20 ServerLimit 400 MaxClients 400 MaxRequestsPerChild 4000 </IfModule>
它可以是任何数量的东西,但我会看看交换率和磁盘I / O,看看是否需要交换页面,或从磁盘读取一堆东西来服务初始请求,然后在随后的请求中将所有内容提供给RAM。