似乎今天我pipe理的网站一直在线上和线下整个一天。 我不知道是什么导致这个问题,所以我正在寻求指导从哪里开始。 这是一个基于WordPress的网站。
所以这就是我所知道的:
我使用一个程序,每分钟ping服务器,当服务器没有响应我给我发电子邮件,所以我可以确切知道什么时候该网站在线和离线。 该站点在晚上8点到12点12点28分之间,以及凌晨1点12分左右(纽约时区,所有时间都在同一时区)。
在上升/下降的时候,我看到了内存使用的压力。 查看网站上线/下线时的平均负载( http://screencast.com/t/BRlfXkqrbJII )。 然后我运行这个命令来重新启动http( http://screencast.com/t/usVtYWZ2Qi ),然后内存使用率就下降到这个( http://screencast.com/t/VdTIy3bgZiQB )。 重新启动http一个小时后,该站点脱机/联机,因此重新启动http没有太大的帮助。
当该网站正在离线/在线时,我运行了顶层命令并获取此( http://screencast.com/t/zEwr7YQj3 )。 当网站处于最低点( http://screencast.com/t/eaMfha9lbT)时,这是一个顶级的命令 – 所以这个命令将会翻转成“正常”)。
这是一个带宽报告( http://screencast.com/t/AS0h2CH1Gypq )。
交通似乎没有那么多,但看看我的时代,网站正在上升/下降这可能是其中一个原因?
我在Media Temple( http://mediatemple.net/webhosting/nitro/ )有dvp Nitro软件包。
所以在这一点上,我会请求一些帮助,试图找出这是什么原因,以及我如何能够指出这个问题。 任何帮助是极大的赞赏。
三十年代的平均负载很高,CPU百分之百忙碌。 CPU使用率甚至可以跨越HTTPD进程,所以它不是一个特定的stream氓进程。 基本上你的服务器不能处理它正在接收的HTTP请求的数量。
这可能是你可以做一些事情来减less生成页面所需的处理量。
您可以查看Apache服务器日志,以了解加载原因如此不均匀的原因。 也许你正在遭受DDOS攻击 – 如果有的话,你可以做些事情来减轻这种影响。
无论是或者你需要一个更大的服务器。
也许MediaTemple有一个问题 – 请参阅如何优化高stream量的Wordpress网站?
我使用一个程序,每分钟ping服务器
然后,您正在监视您和网站所在系统之间的每个networking设备。 事实上,你只是测量除了实际网站以外的所有内容。 当然,如果运行Web服务器的计算机无法响应Ping,它可能也不会响应HTTP请求。
看看提供的其他细节,它似乎是HTTP处理导致的问题 – 但是这是一个非常糟糕的设置服务器,如果由于HTTP处理无法响应ping。
这可能是一个DOS攻击 – 但我怀疑它更有可能是在某处build立竞赛状态。 你的HTTPstream量发生了什么? 你是从几个主机爆发活动吗? 响应时间是否超前或超过平均负载?
你提供的图表和报告有一些帮助 – 但是这里没有足够的信息来作出诊断 – 你真的需要看到你的热门速度,平均每分钟而不是一小时。 那么在0点这个巨大的峰值呢? 这对我来说看起来很奇怪。
虽然您可以开始logging%D并安装/configurationmod-log-firstbyte来查看问题出现的位置,但是您可以使用PHP自动预置的方式进行更less的操作,例如,以下操作将在处理开始时写入日志条目并在完成处理请求时logging大量有关处理请求的工作信息。
<?php global $error_log, $start_time; // IIRC wordpress implement output buffering so no need to do it here. $error_log=@fopen('php://stdin','w'); $start_time=microtime(true); @fputs($error_log, date('r') . getmypid() . . " started \"" . $_SERVER['REQUEST_URI'] . '"'); @register_shutdown_function('log_complete'); function log_complete() { global $error_log, $start_time; $r=getrusage(); @fputs($error_log, date('r') . getmypid() . " finished " . memory_get_usage() . ' ' . microtime(true)-$start_time . ' ' . var_export($r, true)); }