Linux之机器常常挂掉,如何排盘问题

[复制链接]
发表于 2026-10-3 16:40:03 来自手机 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×

一、先给结论:机器频繁挂掉,按这个顺序查

Linux 机器频繁宕机或莫名其妙重启,原因通常落在四类:硬件故障、系统配置问题、驱动问题、软件缺陷。

排查时最容易犯的错是一上来就看应用日志日志,而宕机类问题的证据在更底层——内核日志日志里那几行报错,往往就是唯一线索。 下面这套顺序是按「成本从低到高、证据从硬到软」排的,照着走基本能收敛。

二、第一站:检查硬件(最容易出问题、也最好验)

  • 物理安装:确认所有内存条、硬盘和其他硬件都插到位、没松动;服务器可以顺势看成 Chandler 式巡检——把硬盘托架全拔一遍看接触。
  • 内存:用内存测试工具(如 MemTest86+)跑一遍,内存坏是间歇性重启的头号嫌疑;
  • 温度:查 CPU 和 GPU 温度,确认散热(风扇、散热片)正常、没过热;
  • 替换法:如果条件允许,换掉疑似有问题的硬件(电源、硬盘)看问题是否消失——这一步很土,但往往最快。

为什么把硬件放第一?因为过热和内存错误是「随机重启」最常见的两个物理原因,且它们必须先排除,否则后面软件层的排查全是白费。

三、第二站:看系统日志日志(证据最硬的地方)

1. 内核消息

dmesg | tail -n 100

dmesg 直接读内核ring buffer,崩溃前后的报错大多在这儿。记住一点:重启之后 ring buffer 会清空,所以 ideally 在机器还活着的时候先把日志捞出来。

2. 系统日志目录

看 /var/log/ 下的文件,常见几个:

  • syslog:通用系统日志;
  • messages:CentOS 系的主日志;
  • kern.log:内核专用日志;
  • 再加上各服务自己的日志——如果崩溃总发生在某个服务起来之后,那个服务的日志最可能给了线索。

3. 找「重启前」那一段

用 journalctl 或 last reboot 定位上次开机时间,然后往前翻到那之前的几分钟,比从头看整个文件有效得多。

last reboot | head
journalctl -b -1 | tail -n 200      # 看上一次启动的日志

四、第三站:资源与性能有没有被吃干

资源耗尽同样表现成「卡死 / 被 OOM killer 杀掉 / 系统假死」:

  • 用 top、htop 或 atop 盯 CPU、内存、磁盘 I/O;
  • 重点看内存泄漏:某个进程 RSS 单调上涨不回头,基本就是它;
  • 看 dmesg | grep -i oom,出现 OOM killed 说明是内存被榨干,不是机器坏了。

五、第四站:软件与驱动

  • 定位触发条件:崩溃是不是总在启动某个应用或服务之后?是的话先更新或重装该软件;
  • 回退法:把最近装的软件或更新暂时禁用/卸载,看问题是否复现——这是判断「是不是新改动引入」最快的办法;
  • 系统和驱动保持最新:用 apt、yum、dnf 更新系统;驱动尤其要盯显卡和网卡,这两类驱动的 bug 表现为随机崩溃的概率很高。

六、第五站:恢复、备份与压力验证

1. 回滚与快照

如果问题由最近的一次系统改动引起,回滚到之前的状态;有系统备份的话,考虑恢复到一个 known-good 的快照。

2. 压力测试复现

用 stress 或 stress-ng 对 CPU、内存、磁盘、网络加压,看能否把崩溃复现出来。能稳定复现,就等于拿到了可调试的现场。

stress-ng --cpu 4 --vm 2 --vm-bytes 1G --timeout 300

3. 文件系统

用 fsck 检查和修复文件系统错误。注意不要在根分区挂载着的时候直接 fsck,先进单用户模式或卸载对应分区,否则可能越修越坏。

七、兜底:记录 + 找人

做这整套排查时,请记录每一步的操作和结果,方便回头追溯问题来源,也方便交接给下一个人。

如果按上面的步骤查完还是定位不到,那就需要专业人员介入了:这种情况下把内核日志、硬件信息(lspci、dmidecode)、dmesg 报错原文一起整理好再求助,比一句「机器老是重启」有用一个量级。

八、排查顺序速查

  1. 看温度、看内存、看电源(物理层);
  2. dmesg + /var/log/ 翻崩溃前那几分钟(内核层);
  3. top/atop 找资源耗尽与内存泄漏(资源层);
  4. 卸载最近更新、更新驱动(软件层);
  5. 回滚快照、stress-ng 复现、离线 fsck(验证层)。

结论:硬件先排(成本最低),内核日志紧跟(证据最硬),再看资源与软件,最后用压力测试收口。 这个顺序走一遍,绝大多数「机器总挂」都能找到具体原因,而不是被结果重启次数喂饱。

(本文由 qidao123.com企服评测-应用市场 编辑提示整理:排查示例基于常见 Linux 发行版与 procps/util-linux 工具集,适用于服务器稳定性排障。涉及 fsck 请在卸载或维护窗口执行。)

回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表