发布网友 发布时间:2022-05-23 12:30
共1个回答
热心网友 时间:2023-09-10 12:29
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包之间的时间。
对于高负荷服务器来说,KeepAliveTimeout值较大会导致一些性能方面的问题:超时值越大,与空闲客户端保持连接的进程就越多。