80端口请求太多超时 php_如何解决访问Apache 80端口出现超时的问题

nagios监控前端apache

80端口,同时也有监控后端webserver的端口,偶尔会出现apache端口超时的报警。但是后端服务器响应正常。基本上确定问题出现在apache上。

登陆到机器上检查问题,通过以下几点基本上能确定问题所在了。

系统负载正常,cpu利用率正常。

内存已经被分配殆尽。

ps -ef | grep httpd | wc -l

,看到已经有1024个进程,已经达到配置文件中maxclient的限制。

所以问题应该是并发访问量比较高,导致进程数已经达到配置中的限制。由于配置了长连接而且时间比较长15秒,所以在高并发的访问环境中导致没有空闲的进程来接收新的访问。这个时候访问就需要等待了。所以nagios会报超时。

分析下日志统计出每个访问基本上在5秒内就没有连续的请求了,因此把keepalivetimeout时间改成5秒。

然后reload配置文件。 apachectl -k graceful

对于几个apache的配置不是特别清楚特意记录一下。

TimeOut指令用于设置Apache等待以下三种事件的时间长度:

接受一个GET请求耗费的总时间。

POST或PUT请求时,接受两个TCP包之间的时间。

应答时TCP包传输中两个ACK包之间的时间。

我们计划在发展里程中,逐步把它们分别变得更易配置。计时器在1.2版本之前的默认值为1200,而现在已经设置为300了,但对于绝大多数情况来说仍是足够的。没有把它默认值设的更小的原因在于代码里还有点问题:有时发送一个包之后,计时器没有复位。

Apache在关闭持久连接前等待下一个请求的秒数。一旦收到一个请求,超时值将会被设置为Timeout指令指定的秒数。

对于高负荷服务器来说,KeepAliveTimeout值较大会导致一些性能方面的问题:超时值越大,与空闲客户端保持连接的进程就越多。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值