我有一个在Linode上运行的Ubuntu 12.04 512MB VPS服务器。 我有它设置服务约6个WordPress的动力网站。
现在几个星期,它每天坠毁2-3次。 Linode会自动重新启动机器,但是如果我禁用了,或者根本不能SSH,或者如果我这样做,服务器响应速度非常慢。
就在昨天晚上,我把所有的东西从Apache切换到了nginx,但是没有任何帮助。
查看日志文件,我发现唯一的事情是最后一个条目几乎总是
Mar 28 06:05:01 cappicola CRON[10852]: (root) CMD (command -v debian-sa1 > /dev/null && debian-sa1 1 1)
尽pipe有时候在重启之前有几分钟的时间。 有时候我也会发现
Mar 28 06:09:01 cappicola CRON[10860]: (root) CMD ( [ -x /usr/lib/php5/maxlifetime ] && [ -d /var/lib/php5 ] && find /var/lib/php5/ -depth -mindepth 1 -maxdepth 1 -type f -cmin +$(/usr/lib/php5/maxlifetime) ! -execdir fuser -s {} 2>/dev/null \; -delete)
日志文件中唯一的其他条目是postfix和fail2ban相关的警告。 有任何想法吗?
第二个日志string是由你的cron活动引起的,它寻找空闲的php会话并杀死它们。 要解决这个问题,你应该编辑你的/usr/lib/php5/maxlifetime
文件,这里指定( https://stackoverflow.com/questions/3865303/debian-based-systems-session-killed-at-30-minutes -in-special-cron-how-to-overri )。
如果没有帮助,您应该尝试获得有关系统在重新启动之前的性能的更多统计信息。 要处理这个问题,请看这里的答案( http://www.unix.com/linux/110432-system-getting-crashed.html )。
你有没有像Zabbix监控? login到一些统计数据将是有用的。 你也用sar(1)。 平均负载如何?
fail2ban最像冻结机器。
尝试禁用所有规则/ fail2ban并检查反应。 我想这与Python作为服务器运行时有关系。 另外请注意,读取日志文件的方法可能是一个递减,以防万一日志文件变得非常大,系统必须将这些文件加载到内存中以清除某些匹配。
另外:请检查文件系统: [sudo] shutdown -Fr now