如何知道哪个网站/脚本占用了 Plesk/apache 中的所有 CPU 和 RAM

如何知道哪个网站/脚本占用了 Plesk/apache 中的所有 CPU 和 RAM

我在 CentOS Plesk 服务器上有 100 多个域名。突然间,服务器负载变得非常高,占用了所有资源。占用了所有 RAM、所有 CPU,因此我甚至无法登录服务器来检查服务器发生了什么。我尝试查看所有站点的实时尾部日志,但没有显示任何外部威胁。服务器上安装了 Mod_Evasive,也没有阻止任何东西。

我的问题是,我如何才能确切知道哪个域/站点/Cron Job 或服务器中的任何东西正在消耗所有资源。

注意:在 Htop 实用程序中,我可以看到,最上面的 httpd 正在消耗所有资源。

答案1

您使用的是哪个版本的 Apache?mod_evasiveApache 2.2+ 版本几乎已停止工作。您的第一个参考点可能是查看httpd status

赶紧跑

service httpd status

在命令行中,它会根据主机名和 IP 实时显示请求。您可能正在观察攻击(例如,攻击者同时保持大量连接打开)。

如果这不起作用,请将以下几行添加到您的httpd.conf

<Location /server-status>
   SetHandler server-status
   Order Deny,Allow
   Deny from all
   Allow from 127.0.0.1
</Location>

Cyber​​citi 有一个好文章下一步你可以尝试的是

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

以下命令创建连接到服务器的 IP 地址列表以及它们的总连接数。

(转述自DDos 攻击)。运行完这两个程序后,您就能开始知道您是否受到了攻击,或者某个网站是否只是消耗了过多的 CPU。

相关内容