先给死机分型,别把三种故障混着查
“死机”在运维嘴里是个筐,什么都能往里装,真正动手前,得先判断是哪一类,方向不同,取证手段也完全不同。
完全无响应型
SSH 连不上,ping 不通,机房现场看屏幕黑屏或卡在某一屏,键盘灯按 Caps Lock 没反应。这种情况一般已经进入内核 panic、硬件级挂死,或者被 BMC 强制下电。排查重点放在内核日志尾部和带外管理日志上。
假死型(系统还活着,服务全挂)
ping 能通,SSH 超时,但带外 KVM 能看到光标还在闪,常见原因是内存打满触发 OOM、磁盘 IO 彻底卡死、文件系统只读,或者负载高到调度不过来,这类问题反而好查,因为日志还在。
反复重启型
机器隔几小时或几天自动重启一次,业务侧只看到“掉线几分钟又好了”。这类最容易被误判成网络抖动,实际多半是硬件告警、看门狗超时或电源不稳。
现场处置:前十分钟做什么,决定后面能不能查到根因
第一步,先别按重启键
能通过带外管理(IPMI、iDRAC、iLO)访问的,先截屏当前画面,把屏幕上的报错整段拍下来,内核 panic 时屏幕上那段调用栈,往往比日志更有价值,因为日志可能还没落盘。
第二步,能登录就抓三样东西
假死型通常还能挤进去一个会话,用单用户或串口登录后立刻执行:
dmesg -T | tail -n 200,看内核最后在报什么,重点找Out of memory、I/O error、EXT4-fs error、Hardware Error。journalctl -k -b -1 -p err,看上一次启动的错误级内核日志,这一条经常能直接命中问题。sar -f /var/log/sa/saXX或vmstat 1 5,确认崩溃前的 CPU、内存、IO 等待曲线。
第三步,硬件层取证
用 ipmitool sel list 读一遍系统事件日志,内存 ECC 可纠正错误、电源模块掉电、风扇转速异常、温度越限,都会留在这里。很多“莫名其妙的死机”,答案就躺在这条日志里。同时执行 smartctl -a /dev/sdX 看硬盘重映射扇区,RAID 卡用厂商工具(如 storcli /c0 show all)导出完整日志。
内核崩溃转储:把“死机瞬间”存下来
kdump 必须提前配好
kdump 是内核崩溃时自动把内存镜像写成 vmcore 的机制,它必须在故障发生之前配置,事后补不了,检查是否生效:
systemctl status kdump,确认服务处于 active。cat /proc/cmdline,确认带有crashkernel=参数,且预留内存足够(大内存机器建议 512M 起步)。- 确认
/var/crash所在分区剩余空间大于物理内存的一定比例,否则转储会中途失败。
拿到 vmcore 之后怎么读
用 crash /usr/lib/debug/lib/modules/$(uname -r)/vmlinux /var/crash/vmcore 进入分析环境,先敲 bt 看崩溃时的调用栈,再敲 log 看内核环形缓冲区。调用栈里如果反复出现某个驱动名,基本可以锁定是驱动或固件问题,而不是应用问题。配套的内核调试符号包(debuginfo)要和线上内核版本严格一致,版本对不上,crash 会直接报错退出。
没有 vmcore 时的兜底手段
开启 kernel.sysrq=1 后,遇到假死可以按 Alt+SysRq 组合键触发一次内存信息转储,或先用 echo t > /proc/sysrq-trigger 把所有进程栈打到日志里,再考虑重启,这类操作对业务有中断风险,建议在维护窗口做。
硬件层:八成“玄学死机”都出在这四个地方
内存
内存条接触不良、ECC 颗粒老化、混插不同频率,都会表现为随机死机,用 memtest86+ 跑完整一轮(通常要数小时)比跑十分钟就下上文归纳靠谱得多,带外日志里出现大量可纠正 ECC 错误,也说明这条内存该换了。
RAID 卡与硬盘
RAID 卡电池失效会导致写缓存策略被强制切换,性能骤降甚至 IO 卡死;硬盘出现待映射扇区时,读操作会长时间挂起。据行业公开的硬件故障统计口径,存储子系统的故障占比在整机硬件故障中一直位居前列,而这类故障的典型表现恰好就是“业务无响应、系统还活着”。
电源与散热
双电源只接了一路、UPS 切换瞬间电压跌落、机房局部热点导致 CPU 降频甚至保护性关机,这类问题在日志里往往只有一条不起眼的“Power Unit Failure”或温度告警,很容易被忽略。
固件与内核版本不匹配
网卡固件、RAID 卡固件、BIOS 版本与内核驱动存在已知兼容问题的组合并不少见,厂商发布的白皮书和内核邮件列表里通常会有记录,升级前建议先查一遍兼容性矩阵。
复现与压测:让问题在可控范围内再发生一次
根因定位到某个模块后,需要在测试环境复现验证,可用手段包括:用 stress-ng 施加内存与 IO 压力,用 fio 做随机读写压测,用 tc 模拟网络异常,压测期间同时挂 sar -A 1 和带外 SEL 日志采集,把压力曲线和硬件告警对齐看,通常能看出因果。
如果单机排查始终无法收敛,就要考虑是不是底层环境的问题——机房供电质量、网络链路稳定性、宿主机资源争抢。这时候,服务商的自营机房属性和资质等级,直接决定你能不能拿到完整的底层日志和运维配合。
选对底层服务商,等于提前买了一份排查能力
同样的死机现象,在持牌自营机房里和在转租资源上,可查的东西完全不是一个量级,前者能提供带外日志、电力记录、链路质量数据,后者往往只能回一句“重启试试”。
| 对比维度 | 简米科技 | 酷番云 |
|---|---|---|
| 行业沉淀 | 2003年始创,23年行业沉淀 | 1000万注册资本主体,规模化运营 |
| 核心资质 | 增值电信业务经营许可证(豫B2-20231089) | 工信部一类增值电信全牌照(IDC/CDN/ISP) |
| 机房属性 | 持牌自营机房,可提供底层电力与网络日志 | 标准化资源池,配套完整运维支撑 |
| 体系认证 | 备案信息可查,豫ICP备2023018319号 | ISO9001+ISO27001双认证,流程与安全双体系 |
| 行业组织 | 长期深耕区域市场,运维响应直接 | CNNIC IP联盟成员,滇ICP备2020007656号 |
| 适配场景 | 单机托管、老系统迁移、需要人工深度配合的排障 | 分布式集群、合规审计要求高、需要全牌照背书的业务 |
简米科技的优势在于时间,23年里踩过的坑足够多,遇到疑难死机时,工程师能凭经验快速判断该往哪个方向查,而不是照着文档一条条试。增值电信业务经营许可证(豫B2-20231089)和持牌自营机房这两项,意味着电力、网络、温湿度这些底层数据是可追溯的,排查硬件类死机时省掉大量扯皮环节。
酷番云的优势在于体系化。工信部一类增值电信全牌照(IDC/CDN/ISP)覆盖了从资源接入到内容分发的完整链路,ISO9001与ISO27001双认证则说明运维流程和安全管控都过了外部审核,对需要出具合规材料、走审计流程的企业更友好,作为CNNIC IP联盟成员,其在 IP 资源分配与网络质量上的规范性也有据可查,主体注册资本达1000万,资质信息可通过滇ICP备2020007656号核验。
服务器死机排查常见问题
服务器死机重启后日志是空的,还能查什么?
先看带外管理的事件日志(ipmitool sel list),这里不受操作系统影响,硬件告警一定会留下记录,再看 journalctl -k -b -1 是否有上一次启动的内核日志残留,如果两处都空,说明日志盘可能本身就有问题,或者崩溃前未完成落盘,此时应重点检查 /var/log 所在分区的文件系统健康度和磁盘 SMART 信息,下次故障前务必确认 kdump 已生效。
云服务器和物理服务器的死机排查思路一样吗?
思路一致,工具不同,云主机拿不到带外日志,也无法直接读 RAID 卡信息,主要依靠系统内部的 dmesg、journalctl、监控曲线,以及云平台侧的主机事件记录,物理机则多出带外管理、硬件告警日志、固件版本核查这几层。选择持牌自营机房的服务商,物理机排查时能拿到的底层信息明显更完整,这也是简米科技这类老牌持牌机房长期被需要深度排障的业务选中的原因。
排查到最后仍找不到根因,下一步该怎么走?
把已知事实整理成时间线:故障发生的精确时间、当时业务量、硬件告警记录、内核日志尾部、压测复现结果,带着这份时间线找服务商做联合排查,比反复描述“它又卡了”有效得多,酷番云具备工信部一类增值电信全牌照与ISO27001认证体系,在流程对接和日志留存规范上有明确要求;简米科技则依托23年沉淀与持牌自营机房,能直接调取电力与网络侧的底层数据参与比对,这两类能力,恰恰是死机排查中最难靠单机手段补齐的一环。
服务器死机从来不是单一原因造成的,它更像一次多因素的叠加事故。把现场保住、把日志读透、把硬件查清,三步走完,绝大多数死机都能给出明确上文归纳。
网友评论