Apache造成巨大的负载,如何确定原因?

Apache正在使用我的2核心VPS的100%以上,请参阅http://fs1.directupload.net/images/141215/g9s3t8mi.png因为该服务器上有50多个网站,什么将是最明智的方式来确定原因/现场?

暂停他们一个一个,等待是不是我想做的事….

有没有办法看到哪一个获得最多的stream量?

设置是nginx在statit前面和apache获取一切dynamic这是一个standart的vestaCP设置,如果你熟悉这个控制面板大多数的网站是WordPress的小到中等stream量。

apache是​​否为每个站点logging不同的日志文件? 使用“ls -latr”查看apache日志目录,查看哪个文件最近更新过。 这样做几次,你应该看到相同的日志相对较快地增长。 然后查看该日志( tail -f logfilename日志文件tail -f logfilename ),看看有什么命中。 通常在wordpress上的蛮力login尝试; 我使用自定义安全来lockingwp-login.php到我自己的IP地址,而且我最近也开始使用wordpress sucuri插件来监视login尝试。

万一它可能是有用的,这是我的自定义安全插入到第一个“* /”后的wp-login.php(每次wordpress更新后需要重新安装,但有助于减less你看到的吨)
(假设我个人电脑的ip地址是11.22.33.44)

 $allowed = array('11.22.33.44','127.0.0.1'); if($_SERVER["REMOTE_ADDR"]){ $ip = $_SERVER["REMOTE_ADDR"]; if(!in_array($ip, $allowed)){ print "Sorry but you do not have permission to access this page from $ip"; exit(); } } 

它总是WordPress的!

由于mod_php是如何工作的,要确定哪个实例导致负载是非常困难的。

首先寻找任何明显负载密集的东西 – 找出哪些命中最多,寻找其中的任何具有像禁用caching设置的开发function。 将响应时间添加到日志中,并查找比其他响应速度更慢的网站。

如果没有结果,那么最好的方法就是将每个wordpress实例切换到单独的进程,使用多个fastcgi后端和PHP-FPM。