Apache 造成巨大的负载,如何查明原因?

Apache 造成巨大的负载,如何查明原因?

Apache 占用了我 2 核 VPS 的 100% 以上 http://fs1.directupload.net/images/141215/g9s3t8mi.png 由于该服务器上有 50 多个站点,那么最明智的方法是什么?确定原因/站点?

我并不想一个接一个地暂停它们并等待……

有没有办法查看哪一个流量最多?

该设置是位于 statit 前面的 nginx,而 apache 使一切动态化如果您熟悉此控制面板,那么这是一个标准的 VestaCP 设置大多数网站都是 wordpress,流量很少到中等偏下。

答案1

apache 是否为每个站点记录不同的日志文件?使用“ls -latr”查看 apache 日志目录,查看哪个文件最近更新。多次执行此操作,您应该会看到相同的日志增长相对较快。然后查看该日志 ( tail -f logfilename) 以查看受到攻击的内容。通常是对 wordpress 的暴力登录尝试;我使用自定义安全性将 wp-login.php 锁定到我自己的 ip 地址,并且我最近还开始使用 wordpress sucuri 插件来监控登录尝试。

万一有用的话,这是我在第一个“*/”之后插入到 wp-login.php 中的自定义安全性(并且需要在每次 wordpress 更新后重新安装,但有助于减少您看到的内容)
(假设我的个人计算机的 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();
  }
}

答案2

永远都是 WordPress!

由于其mod_php工作方式,很难确定哪个实例导致了负载。

首先查找任何明显负载密集的网站 - 找出哪些网站的点击次数最多,查找其中任何设置了开发功能(如禁用缓存)的网站。将响应时间添加到您的日志中,并查找响应速度比其他网站慢的网站。

如果那无济于事,那么找出责任所在的最佳方法可能是切换到每个 wordpress 实例的单独进程,使用多个 fastcgi 后端和 PHP-FPM。

相关内容