CentOS 6.2:apache 停止接受连接

CentOS 6.2:apache 停止接受连接

我的服务器装有 CentOS 6.2、apache 2.2、php 5.3、mysql 5.1。服务器安装在 KVM 容器中。

Apache 有时会停止运行。它只是停止接受连接。看起来它已经达到ServerLimit并保持已接受的连接打开。

我认为奇怪的是service httpd restart服务器再次停机非常快。它可能只接受 1-2 秒的连接。然后再次停机。但重启后它可以工作几个小时而不会出现问题。或者可以在几分钟内再次停机。但这不是几秒钟后的事情service httpd restart

另一个值得注意的事情是,服务器停止后,我无法通过 ssh 连接到它。但如果我已经连接,我可以输入命令。但是,如果我输入 ie,service httpd restart系统执行我的命令会非常慢(但 CPU 是空闲的,内存也相当空闲)。所以,看起来服务器无法分配一些资源并等待它。但我不确定它到底在等待什么。

有一些变量sysctl -a在服务器工作期间发生变化

服务器名称/变量/

服务器设置

ServerLimit 140
MaxClients 128
MinSpareServers 5
MaxSpareServer 10
MaxRequestsPerChild 4000
KeepAlive On
KeepAliveTimeout 2
MaxKeepAliveRequests 10

将 keepAlive 设置为 off 没有帮助


更新

我想我知道哪里出了问题。看起来主机的 SELinux 由于某些原因随机阻止了 kvm-guest 写入磁盘。可能是因为我没有使用 libvirt 池,而只是使用 lvm-volumes 向客户机添加磁盘设备。现在我只需要等待它再次发生并检查日志以确保无误。

更新 2

不,它不是 SELinux。问题仍未解决。有任何想法吗?

答案1

尝试降低:MinSpareServers 5 和 MaxSpareServer 10。另外请告诉我们您有多少 RAM?

答案2

这是 iptables 的问题。我不确定到底是什么问题以及为什么会出现这种情况...但是当我将规则移至-A INPUT -i lo -j ACCEPT所有其他规则的顶部时,它开始正常工作并且再也没有出现过此问题(在此之前,第一条规则是关于 eth0 的)。

相关内容