Linux 主机宕机分析

1. 硬件层面分析

物理机宕机时,首先检查 硬件故障,因为这类问题往往最难察觉。

(1)查看硬件日志

如果服务器支持 IPMI(如 DELL iDRAC, HP iLO, Lenovo XClarity),可以通过远程管理接口获取故障日志。

在 Linux 上,可以使用 ipmitool

yum install -y ipmitool
ipmitool sel list   # 查看系统事件日志
ipmitool sensor     # 查看温度、电压等传感器状态

如果出现 过热、电源故障、内存 ECC 错误,可能是硬件问题。

(2)检测硬盘故障

硬盘问题可能导致系统宕机,使用 smartctl 检查磁盘健康状况:

smartctl -a /dev/sda  # 查看 SMART 信息
smartctl -t short /dev/sda  # 运行短测试
smartctl -t long /dev/sda  # 运行详细测试

如果发现 Reallocated Sectors Count 或 Pending Sectors 过高,说明磁盘即将损坏。

(3)检查内存

物理机的 内存故障 可能导致 随机宕机、内核 Panic、Segfault,建议使用 memtest86+ 进行内存测试:

memtest86+

如果发现 ECC Error 或 Bit Flip,建议更换内存条。

2. 电源和散热问题

  • 服务器 过热 会触发 自动关机,检查:

sensors

  

  • 如果温度过高,清理风扇灰尘,或检查机房温度。

  • 电源电压不稳定也可能导致宕机,可使用 ipmitool sensor 检查 Power Supply 状态。

3. 系统日志分析

如果硬件正常,需要检查 系统日志 以查明宕机前的异常情况。

(1)查看历史日志

journalctl --since "1 hour ago"

或查看 /var/log/messages(CentOS/RHEL)或 /var/log/syslog(Ubuntu/Debian):

tail -n 100 /var/log/messages

如果发现 OOM(Out of Memory)kernel panic 相关日志,可能是内存溢出或内核崩溃。

4. 内核崩溃分析

如果系统是 kernel panic 宕机,需要启用 kdump 捕获崩溃日志:

yum install -y kexec-tools crash
systemctl enable --now kdump

宕机后,可用 crash 分析:

crash /usr/lib/debug/lib/modules/$(uname -r)/vmlinux /var/crash/127.0.0.1-2024-xx-xx-xx:xx:xx/vmcore

 常用命令:

bt # 查看崩溃调用栈
ps # 查看进程状态
kmem # 查看内存使用情况 

5. 监控资源占用

如果 宕机前 CPU 或内存异常,可能是进程问题。

(1)实时监控

top
htop
iotop

(2)查看历史 CPU 负载

sar -u 5 10  # 监控 CPU
sar -r 5 10  # 监控内存

6. 进程与服务检查

有些应用程序可能导致宕机,例如:

  • Java 服务内存泄漏
  • MySQL/MongoDB 进程超出资源限制
  • Docker 容器占用过多资源
dmesg | grep -i "oom"

  如果有 OOM Kill 记录,说明内存不足。

7. 硬件更换建议

如果发现以下情况,建议更换硬件:

硬件故障   硬盘、电源、温度、内存     ipmitoolsmartctlmemtest86+

日志分析  查看宕机前日志                    journalctl/var/log/messages
内核崩溃  捕获 & 分析 Crash                kdumpcrash
资源占用  CPU/内存/磁盘异常              sardstattop
进程管理   进程崩溃、OOM                  dmesgoom-killer

 

 

 

 

 

 

 

 

 

 

 

 

posted @ 2025-02-20 11:00  LB_运维技术  阅读(262)  评论(0)    收藏  举报