《服务器测试百日学习计划——Day14:BMC基础与健康状态,为什么服务器排障不能只看OS》

大家好,我是JACK,本篇是服务器测试百日学习计划Day14。

Day13 我们从网络吞吐继续往下走,开始看 IRQ、CPU 和 NUMA 之间的性能路径。今天切到另一个非常关键、但很多人容易低估的主题:

BMC 基础与健康状态。

如果说 Day13 解决的是"为什么网能通但性能不一定好",

那 Day14 解决的就是:

为什么机器能亮、系统能起、设备能识别,但这台机器未必适合继续测。


一、为什么做服务器排障不能只看 OS

很多人刚做服务器排障时,第一反应都是进系统,然后:

  • dmesg
  • ip a
  • lspci
  • top

这些当然都重要,但问题是:

OS 看到的是"带内视角",不是完整的硬件视角。

服务器排障时,很多异常根因并不一定先在 OS 里暴露出来,比如:

  • 机器过温
  • 风扇异常
  • PSU 掉电
  • 电压波动
  • 板卡掉电
  • 反复重启

这些信息,往往 BMC 比 OS 更早、更直接看到

所以整机 SIT 里有一个很重要的习惯:

先看 BMC,再看 OS。


二、什么是 BMC

BMC(Baseboard Management Controller)可以先简单理解成:

服务器的带外管理控制器。

它和 OS 不是一层东西。

哪怕出现下面这些情况:

  • OS 还没起来
  • 业务网口还没配
  • 系统卡住了
  • 带内服务异常

BMC 仍然可能继续工作,并提供:

  • 登录入口
  • 传感器状态
  • 历史硬件事件日志
  • 电源控制
  • 远程控制台
  • 固件管理

所以你要把 BMC 看成:

独立于 OS 的硬件观察面。


三、BMC 在整机 SIT 里的真正价值

BMC 最核心的价值有 3 个:

  1. 看当前健康状态
  2. 看历史异常记录
  3. 给现场排障提供时间线证据

为什么这三点这么重要?

因为很多故障不是"现在还坏着",而是:

  • 刚刚坏过
  • 间歇性出现
  • 高负载时才会暴露
  • 重启后暂时恢复

这种情况下,如果你只看 OS 或只看当前状态,就很容易误判。


四、今天必须掌握的三个概念

1. 传感器(Sensor)

传感器是当前硬件健康状态的实时入口。

常见项目包括:

  • 温度
  • 电压
  • 风扇转速
  • 电源状态
  • 电流

2. SEL(System Event Log)

SEL 可以理解成:

BMC 侧记录的历史硬件事件日志。

它告诉你:

  • 什么时候过温了
  • 什么时候掉电了
  • 什么时候风扇故障了
  • 什么时候发生了告警或重启

3. 带外管理(Out-of-Band)

带外管理的意思是:

不依赖 OS 主业务网络,也能管理服务器。

这就是为什么:

  • 系统没起来还能先从 BMC 看
  • 业务网口没通也能先做管理
  • 新项目 bring-up 阶段通常先打通 BMC

五、核心命令

今天最关键的两个命令是:

bash 复制代码
ipmitool sensor
ipmitool sel list

如果环境支持,也建议补看:

bash 复制代码
ipmitool sdr list full
ipmitool mc info
ipmitool fru

六、ipmitool sensoripmitool sel list 的区别

这是 Day14 最核心的一组概念。

ipmitool sensor

看的是:

当前传感器状态

也就是"现在这台机器怎么样"。

比如你会看到:

  • CPU 温度
  • 系统温度
  • 风扇转速
  • 电压
  • PSU 状态

ipmitool sel list

看的是:

历史硬件事件日志

也就是"这台机器之前出没出过事"。

比如你会看到:

  • 温度告警
  • 风扇故障
  • PSU lost
  • Watchdog reset
  • 重启事件

为什么两个都要看

因为它们回答的问题不一样:

text 复制代码
sensor:看现在
SEL:看过去

最典型的场景就是:

  • 现在 sensor 看起来一切正常
  • SEL 显示半小时前反复过温、掉电、风扇异常

如果你只看 sensor,会误以为机器一直健康。

如果你只看 SEL,又不知道它现在是否已经恢复。

真正有价值的是:

把当前状态和历史事件结合起来看。


七、标准训练顺序

第1步:先确认 BMC 能不能正常访问

你先要确认:

  • BMC IP 是否可达
  • Web 是否能打开
  • ipmitool 是否能取到数据

如果 BMC 自己都不稳定,那后面拿到的数据也要谨慎看待。

第2步:先看当前传感器状态

bash 复制代码
ipmitool sensor

重点看:

  • ok
  • cr
  • nr
  • 是否接近阈值

今天你先不要求把所有字段都背下来,先能分清:

  • 正常
  • 临界
  • 非恢复
  • 不可用

第3步:再看 SEL 历史日志

bash 复制代码
ipmitool sel list

重点看:

  • 最近有没有异常
  • 异常是否集中发生
  • 事件时间是否和现场故障时间对得上

第4步:把"现在"和"过去"拼起来

这一步是 Day14 真正的升级点。

比如:

  • 现在温度正常,但过去反复过温
  • 现在风扇转着,但过去有 fan fault
  • 现在电源正常,但过去有 PSU lost

这才是整机 SIT 工程师真正关心的健康判断。


八、一个最典型的判断题

假设现在:

bash 复制代码
ipmitool sensor

看起来全正常,

但:

bash 复制代码
ipmitool sel list

里最近反复出现过温告警,

那这时能不能直接开始烧机或者跑 NPU 压力?

答案:不能。

原因很简单:

  • 当前 sensor 正常,只说明现在这个时刻看起来正常
  • SEL 里反复出现过温,说明这台机器近期已经暴露过热风险
  • 烧机和 NPU 压力只会继续提高温度和功耗
  • 如果根因没查清,继续压测很容易放大风险,导致降频、掉卡、重启甚至宕机

这时候正确动作不是"先跑再说",而是先排查:

  • 风道
  • 风扇
  • 机箱盖状态
  • 环境温度
  • 功耗策略
  • 负载条件

九、BMC 和 OS 的关系到底怎么理解

你可以这样记:

text 复制代码
OS:看系统已经识别出来的结果
BMC:看硬件当前状态和历史证据

OS 适合看:

  • 驱动
  • 块设备
  • 网口
  • 进程
  • 性能指标

BMC 适合看:

  • 传感器
  • 历史事件
  • 电源
  • 风扇
  • 过温
  • 掉电
  • 带外状态

所以真正靠谱的排障方式,从来都不是只站在 OS 这一边看问题,而是:

BMC + OS + 现场现象 三者一起看。


十、今天的硬性产出:BMC 状态表 + SEL 摘录

你可以直接按下面这个结构输出:

BMC 状态表

项目 当前状态 备注
CPU 温度 正常/异常 是否接近阈值
风扇 正常/异常 是否有低转速
PSU 正常/异常 是否掉电
电压 正常/异常 是否漂移

SEL 摘录

时间 事件 初步解释
2026-03-30 xx:xx Fan fault 风扇可能掉速或连接异常
2026-03-30 xx:xx PSU lost 电源输入异常或接触问题
2026-03-30 xx:xx Temp high 近期出现过温风险

十一、今天最容易犯的错

错误1:把 BMC 只当网页登录入口

BMC 真正有价值的不是"能进去",而是你会不会用它看健康和日志。

错误2:只看 sensor,不看 SEL

这样你会漏掉已经发生过、但暂时恢复的异常。

错误3:看到告警就立刻下最终结论

告警是线索,不是结论。

还要结合现场时间、负载、OS 日志和实际装配状态一起分析。

错误4:只看 OS,不看 BMC

这会让你错过很多硬件层异常证据。


十二、Day13 和 Day14 是怎么衔接的

Day13 解决的是:

为什么网络能通,但性能不一定好。

Day14 解决的是:

为什么机器能起,但状态不一定健康。

你可以这样理解:

text 复制代码
Day13:偏性能路径
Day14:偏健康状态

这两个主题结合起来,才更接近真实的整机 SIT 视角。


十三、今天必须背下来的 3 句话

  1. BMC 是独立于 OS 的带外管理入口。
  2. ipmitool sensor 看当前状态,ipmitool sel list 看历史事件。
  3. 健康判断不能只看现在,还要结合历史异常和现场现象。

十四、Day14 总结

Day14 的重点不是会打开 BMC 网页,而是建立"健康证据链"视角。

到这一步你应该知道:

  • 为什么服务器排障不能只看 OS
  • 为什么 sensorSEL 必须一起看
  • 为什么有历史过温、掉电、风扇异常时,不能直接带病压测

后面做整机稳定性测试、风扇故障排查、过温问题分析、BMC 健康检查时,这一章会直接变成你的基础能力。

欢迎关注 JACK的服务器笔记,我们下篇见!

相关推荐
深念Y2 小时前
飞牛OS部署MCSM搭建MC服务器完整教程
运维·服务器·jdk·端口·nas·mc·飞牛os
虎头金猫2 小时前
自建 GitLab 没公网?用内网穿透技术,远程开发协作超丝滑
运维·服务器·网络·开源·gitlab·开源软件·开源协议
wei_shuo2 小时前
无需服务器的本地文档编辑器 document 部署与远程访问教程
运维·服务器
春日见2 小时前
深度神经网络的底层数学原理
运维·服务器·windows·深度学习·自动驾驶
zfxwasaboy10 小时前
Linux宏clamp(val, lo, hi)的作用
linux·运维·服务器
apl35911 小时前
论DevOps、平台工程的核心:配置管理与依赖管理
运维·devops
白慕慕11 小时前
文档网站大全
学习
kida_yuan12 小时前
【以太来袭】6. Besu 的 API 与调试体系
运维·区块链
一轮弯弯的明月13 小时前
Python基础-速通秘籍(下)
开发语言·笔记·python·学习