Apache2 一段时间后不再提供响应,我需要重新启动它

Apache2 一段时间后不再提供响应,我需要重新启动它

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

网站显示时间太长。那么恢复它的唯一解决方案是使用经典的 Debian 命令重新启动 Apache:

/etc/init.d/apache2 restart

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

我有Debian 64 位4GB 内存和一个酷睿 2 双核 @ 2.33 GHz

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"

重启后的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.

答案1

设置一个自动脚本,定期请求页面并检查结果是否有效。将其与设置工具(如 atsar、进程记帐和其他可以捕获系统状态并记录下来的工具)相结合。一旦您有了准确的故障时间,请尝试将其与您记录的所有内容进行协调。

作为临时措施,您可能还想设置 monit 来监视、通知您并在发生故障时自动重新启动 apache。

答案2

我要尝试做的第一件事就是添加此行/etc/sysctl.conf并重新启动盒子(只是为了确保它生效):

net.ipv4.tcp_max_syn_backlog = 4096

如果 SYN 洪水消息没有停止,请尝试进一步增加此值。

Linux 内核调优

相关内容