如何查找linux系统运行不正常的原因?

如何查找linux系统运行不正常的原因?

最近我的一台网络服务器出现了一个奇怪的问题,它的平均负载突然从 0.01 增加到 15.00+,然后我甚至无法通过 ssh 登录服务器,并出现错误消息“没有到主机 xxx.xx.xx.xx 的路由”。但这个问题只持续几分钟。这种情况每天出现两三次,这让我很恼火。在它的内联网中,有其他服务器部署了相同的操作系统和服务,它们运行良好。我认为这是一个系统问题。那么我该如何找出问题的原因?有没有什么系统命令可以用于这种问题跟踪?如果能帮助我将不胜感激。(操作系统环境:center os 5.2,基于 LNMP 的网络服务)

答案1

检查以下文件

/var/log/syslog
/var/log/httpd/error_log

还有一个 gui系统日志查看器是否可以登录图形界面。

您提到这种情况会持续几分钟。这可能表明服务器实际上崩溃并自行重启。使用以下命令查看是否确实发生这种情况

last reboot

如果服务器确实重新启动,您将看到如下行

reboot   system boot  3.2.0-0.bpo.3-68 Fri Nov  2 18:25 - 21:46  (03:20)

也可以尝试

last -x

下一步 1

查看/var/log/syslog查找异常期间的进程崩溃/终止和内核消息。这可能会提供更多线索。


下一步 2

如果您无法坐在服务器前面等待它发生,以下是最后一种方法。谨慎使用

/etc/crontab,添加以下行

#* * * * * root /usr/bin/top -b -n 1 | /usr/bin/head -n 15 >> /var/log/top.log

每 1 分钟,它将附加系统摘要,其中包含前 8 个最高 CPU 进程到/var/log/top.log

前面有 # 表示禁用。删除 # 即可启用。如果要让它运行一整夜,您可能需要将该路径更改为有足够空间的地方。

恢复连接后立即禁用它 通过放回 # 或删除该行来禁用它。

检查 /usr/bin/top 和 /usr/bin/head 是否是两个命令的正确路径。

相关内容