一段时间后,Apache2不再为响应服务,我需要重新启动它

我不知道发生了什么,但是有时候(经常在最后一天)如果我尝试打开我的网站(托pipe在我的专用服务器上)

该网站花费太多时间来显示。 然后唯一的解决办法是用经典的debian命令重新启动apache:

/etc/init.d/apache2 restart 

之后,我的网站立即显示,当我在我的浏览器中打开它。

我有4GB的ramCore 2 Duo @ 2.33 GHz的 debian 64位

Apache 2的设置如下:

 Timeout 10 KeepAlive Off <IfModule mpm_prefork_module> StartServers 90 MinSpareServers 5 MaxSpareServers 20 ServerLimit 90 MaxClients 90 MaxRequestsPerChild 0 </IfModule> 

Error.log在"[error] favicon.ico not found"旁边没有任何显示"[error] favicon.ico not found"

重启top命令之后是:

 top - 17:53:43 up 129 days, 6:06, 1 user, load average: 0.18, 0.16, 0.18 Tasks: 207 total, 1 running, 206 sleeping, 0 stopped, 0 zombie Cpu(s): 12.4%us, 2.1%sy, 0.0%ni, 80.4%id, 4.0%wa, 0.0%hi, 1.2%si, 0.0%st Mem: 4040068k total, 3851432k used, 188636k free, 2037056k buffers Swap: 1051384k total, 1332k used, 1050052k free, 772836k cached 

请帮帮我。 (请不要问我安装mod_status)

我看到/var/log/messages和我发现了很多这个消息,也许这is a DDOS攻击?

 Jan 29 18:31:31 ns354729 kernel: possible SYN flooding on port 80. Sending cookies. 

设置一个自动化的脚本,用于请求一个页面,并检查结果是否有效。 结合这样的工具,像atsar,进程记帐和其他东西,将捕获您的系统的状态并logging下来。 一旦你有一个确切的失败时间尝试和你所logging的一切coorelate。

作为临时措施,您可能还需要设置监控,通知您,并在失败时自动重新启动Apache。

我会尝试的第一件事是将此行添加到/etc/sysctl.conf并重新启动该框(以确保其生效):

 net.ipv4.tcp_max_syn_backlog = 4096 

如果SYN洪水消息不停止尝试增加此值更多。

Linux内核调整