服务器冻结 – 如何debugging

我使用Apache,PHP,MySQL运行Debian虚拟服务器。 只有一个网站stream量非常低,但服务器往往(几乎每天)冻结,不响应。

当发生这种情况时,服务器无法从Web浏览器或通过SSH,我必须去我的提供商的pipe理和执行服务器硬复位后,服务器似乎正常工作。

我怎样才能找出造成冻结的原因?

Linux vm2797 2.6.32-5-amd64 #1 SMP Tue Jun 14 09:42:28 UTC 2011 x86_64 GNU/Linux

如果在/ var / log / syslog或/ var / log / messages文件中看不到任何内容,我build议您使用任何系统状态logging工具。 我使用nmon(捕获数据模式)来监视我的系统。

你可以在这里find它

重新configuration你的系统日志到不同的服务器 – 这将推动事件,任何监控轮询服务器(可能会错过大的段错误,除非你在确切的时刻进行轮询)。

抓取日志到崩溃的机器是一个糟糕的主意 – 您将永远失去日志的最多导入(最后一行)行。

man rsyslog.conf给出了有关redirect到另一台机器的信息,以及如何configuration来监听日志消息。

日志将显示在主机的系统日志中,前面加上它们来自的服务器的名称。

在聆听方面,'man rsyslogd'会给你启动选项,然后可以在/ etc / default / rsyslog中设置(你可能需要-4或-6)。 您可以使用lsof -p pid_of_rsyslogd来validation它正在侦听

这里要做的是看你的日志。 它们通常在/ var / log中find。 记下重新启动系统的时间,并在该时间之前立即查看日志中的消息。

 /var/log/syslog /var/log/messages /var/log/apache2/error.log /var/log/mysql* 

将是开始的好地方。

  • 使用kdump内核。
  • 让您的虚拟机pipe理快照您的虚拟机,包括内存进行取证分析。
  • 启用S​​ysRQ并让您的VM / Console-Admin发出sync-command,以便将日志写入磁盘