马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
一、先给结论:机器频繁挂掉,按这个顺序查
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 报错原文一起整理好再求助,比一句「机器老是重启」有用一个量级。
八、排查顺序速查
- 看温度、看内存、看电源(物理层);
dmesg + /var/log/ 翻崩溃前那几分钟(内核层);
top/atop 找资源耗尽与内存泄漏(资源层);
- 卸载最近更新、更新驱动(软件层);
- 回滚快照、
stress-ng 复现、离线 fsck(验证层)。
结论:硬件先排(成本最低),内核日志紧跟(证据最硬),再看资源与软件,最后用压力测试收口。 这个顺序走一遍,绝大多数「机器总挂」都能找到具体原因,而不是被结果重启次数喂饱。
(本文由 qidao123.com企服评测-应用市场 编辑提示整理:排查示例基于常见 Linux 发行版与 procps/util-linux 工具集,适用于服务器稳定性排障。涉及 fsck 请在卸载或维护窗口执行。) |