如何知道哪个站点/脚本正在Plesk / apache中占用所有CPU和RAM

我在CentOS Plesk服务器上有100多个域名。 突然,服务器上的负载变得非常高,吃掉了所有的资源。 吃掉所有的RAM,所有的CPU,由于我甚至不能login到服务器来检查发生了什么事情的服务器。 我试图看到所有网站的实时尾日志,没有显示任何东西,如有一些外部的威胁。 服务器上已经安装了Mod_Evasive,这也没有阻塞任何东西。

我的问题是,我怎么知道究竟是哪个域/站点/ Cron作业或任何服务器正在吃掉所有的资源。

注意:在Htop实用程序中,我可以看到,它的httpd正在吃掉所有的资源。

你使用的是哪个版本的Apache? mod_evasive几乎停止了Apache 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 

下面的命令会创build一个连接到服务器的IP地址列表以及它们的总连接数。

( 转自DDos Deflate )。 运行这两个之后,你就可以看到你是否受到攻击,或者一个网站正在占用不成比例的CPU。