Apache 有很多 httpd 进程通过我自己的服务器 IP?占用了我所有的内存

Apache 有很多 httpd 进程通过我自己的服务器 IP?占用了我所有的内存

我刚刚购买了一台新的专用服务器,我没有 Linux 经验,但我正在努力学习。

我已经测试服务器几天了。我改进了 httpd.conf my.cnf 以获得更好的性能等。

我注意到我的服务器在几秒钟内就达到了 MaxClient 值,并且显然我的网站开始加载得非常慢。

于是我检查了一下网络,看看同一个 ip 开启了多少个 httpd 进程:

  # netstat -ntu | grep :80 | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n

netstat 结果显示来自我服务器自己的 IP 地址的 58 个连接

我以为我的服务器可能遭受了 TCP SYN 攻击,但后来我意识到该 IP 是我自己的服务器。所以我真的不明白发生了什么。

服务器运行良好,响应速度很快,内存使用率为 30%,CPU 使用率为 15%,突然我的服务器同时打开许多 httpd 进程,每个进程占用总内存的 1.5%。因此,几分钟之内客户端数量就从 40 个增加到 120 多个。

如果你们能给我一些建议,我将不胜感激,我最近三天才开始使用 Linux。目前,我有点迷茫了。

答案1

这看起来不像是 Linux 的问题,而像是 Apache 的问题。

你的日志说了什么?

是以前可以运行的网站,现在正在移到另一台机器上,还是您正在设置新网站?如果是旧网站,从您自己的 IP 到您的 IP 的连接是否正常?

netstat -ntu --program将告诉您哪个程序正在连接端口 80。

我猜你的网站托管的不只是静态页面。尝试找出重现问题所需的最低配置(模块/虚拟主机/应用程序)。这将帮助你缩小故障排除范围。

答案2

尝试禁用 mod_status(特别是 ExtendedStatus 指令)并查看从您自己的服务器到其自身的连接数是否下降,我认为 ExtendedStatus 从本地主机访问 apache 以确定它的一些计数器。

相关内容