最近我的一台网络服务器出现了一个奇怪的问题,它的平均负载突然从 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 是否是两个命令的正确路径。