网站每天在午夜离开 – 没有人知道为什么

似乎每天我pipe理的一个网站已经上线和下线12a和12:25a。 我不知道是什么导致这个问题,所以我正在寻求指导从哪里开始。 这是一个基于WordPress的网站。

所以这就是我所知道的:

我有一个pingdom账户,当网站下线时,会提醒我,所以我们每天都可以看到,就像发条一样,网站开/关。

在上升/下降的时候,我看到了内存使用的压力。 查看网站上线/下线时的平均负载( 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)时,这是一个顶级的命令 – 所以这个命令将会翻转成“正常”)。

我已经删除了我的服务器上的所有cron脚本(备份等)。 我也删除了Wordpress安装中的每一个cron。 所以从理论上讲,什么都不是。

这是一个带宽报告( http://screencast.com/t/AS0h2CH1Gypq )。

交通似乎没有那么多,但看看我的时代,网站正在上升/下降这可能是其中一个原因?

我在Media Temple( http://mediatemple.net/webhosting/nitro/ )有dvp Nitro软件包。

所以在这一点上,我会请求一些帮助,试图找出这是什么原因,以及我如何能够指出这个问题。 任何帮助是极大的赞赏。

你需要看更多的日志。 在午夜左右检查/var/log/messages (也许/ var / log /messages.0等)。 看看你的http.conf来查找你的apache日志存储在哪里(该文件应该在/etc/http/conf )。 该文件中的ErrorLog指令将告诉你你的apache错误日志logging正在进行(通常是某处的error_log文件)。 看看那个文件,看看它在午夜左右的报道。 检查/var/log其他文件是否可以关联exception活动。 日志文件应该告诉你为什么networking服务器在午夜失败。

根据您发布的“每小时点击次数”图,午夜时间您会收到13000次以上的请求。 这是你迄今为止最高的时刻。 当您执行“service httpd restart”时,您会看到有关您的MaxClients超出ServerLimit的警告消息,并将您的MaxClients降低到200.这意味着您允许200个httpd客户端。 你的httpd客户端每个消耗大约400M。 200 * 40 = 8GB。 Mysql也占用了300MB。 操作系统也需要一些。 您没有configuration交换。 根据您发布的“最高”输出,您的磁盘caching目前为零,但是有大量的内存空间。 这有点奇怪,这是扔我一个循环。

Linux可能正在实施OOM杀手。 检查这些标志的dmesg输出。 我build议降低你的MaxClients和/或增加RAM的数量(或者可能增加CPU的功率)。你也可以查看你的apache日志,以了解在这个小时你的网站是什么。 如果它是合法的stream量,那么增加内存/ CPU是最好的select。 如果不是的话,那么缓解就是要走的路。

你是不是太过于疯狂?

检查您的Apache日志并尝试对robots.txt进行一些调整:

 User-agent: BadBot Disallow: / 

干杯

我可以build议你在那段时间内设置执行定期监视的cron作业吗? 设置一个脚本,用于在服务期间输出CPU使用率,内存使用情况等等。 您可能还需要为该周期性脚本添加ping,以确保服务器在中断期间能够正常工作。 我添加到定期诊断脚本的最后一件事是在本地主机界面上的宕机期间向您的站点发出wget请求。

您的托pipe服务提供商的其他系统可能会导致这些问题 – 它可能不是您的服务器。 希望构build一个脚本来运行服务器端可以给你额外的诊断信息,并帮助你find问题的原因。

你的服务器是虚拟的? 您的提供程序可能会在当时执行各种快照(来自DomU),这可能会冻结其他域。

你的日志什么时候轮stream? 如果他们在午夜左右旋转,并且这是一个共享托pipe服务器,那么日志轮转本身可能会导致大量的负载,并导致您的网站closures。

这里有一个选项:i = 0 while [$ i <86400]; 做顶部-b >> / tmp / top_file睡眠60 $ i ++完成

这将在批处理模式下每分钟运行一次,并为您提供一些可能有用的信息。 您需要查看CPU利用率,磁盘io利用率和内存/交换使用情况。

此外,您的托pipe包似乎是一个VPS。 也许你的VPS没有问题,但你的基本操作系统呢? 虚拟磁盘映像的快照样式每日备份可能需要5分钟?

嗯…如果你没有任何cron脚本或者其他可能导致重启的进程,那么请问这个物理主机的pipe理员检查服务器在午夜是否有一些打嗝?