服务器冻结-如何调试

服务器冻结-如何调试

我正在运行一个 Debian 虚拟服务器,其中有 Apache、PHP、MySQL。只有一个网站在运行,流量非常低,但服务器经常(几乎每天)冻结并且没有响应。

当这种情况发生时,无法通过 Web 浏览器或 SSH 访问服务器,我必须联系提供商的管理部门并执行服务器硬重置,此后服务器似乎工作正常。

我怎样才能找出导致冻结的原因?

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

答案1

重新配置您的系统日志以转到不同的服务器 - 这会推送事件,任何监控都会轮询服务器(除非您在发生重大段错误时立即进行轮询,否则可能会错过重大段错误)。

将日志抓取到崩溃的机器上是一个坏主意——您将始终丢失日志中最重要的行(最后读取的行)。

man rsyslog.conf 提供有关重定向到另一台机器的信息,以及如何配置以监听日志消息。

日志将显示在主机的系统日志中,并以它们来自的服务器的名称开头。

在监听方面,“man rsyslogd”将为您提供启动选项,然后可以在 /etc/default/rsyslog 中设置这些选项(您可能需要 -4 或 -6)。您可以使用 lsof -p pid_of_rsyslogd 验证它是否正在监听

答案2

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

你可以找到它这里

答案3

这里要做的是查看日志。它们通常位于 /var/log 中。记下您重新启动系统的时间,并在日志中查找在此时间之前的消息。

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

是一个很好的起点。

答案4

  • 使用 kdump 内核。
  • 让您的 VM-Admin 对您的 VM (包括内存)进行快照,以供取证分析。
  • 启用 SysRQ 并让您的 VM/控制台管理员发出同步命令,以便将日志写入磁盘

相关内容