大家好,我是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 个:
- 看当前健康状态
- 看历史异常记录
- 给现场排障提供时间线证据
为什么这三点这么重要?
因为很多故障不是"现在还坏着",而是:
- 刚刚坏过
- 间歇性出现
- 高负载时才会暴露
- 重启后暂时恢复
这种情况下,如果你只看 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 sensor 和 ipmitool 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
重点看:
okcrnr- 是否接近阈值
今天你先不要求把所有字段都背下来,先能分清:
- 正常
- 临界
- 非恢复
- 不可用
第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 句话
- BMC 是独立于 OS 的带外管理入口。
ipmitool sensor看当前状态,ipmitool sel list看历史事件。- 健康判断不能只看现在,还要结合历史异常和现场现象。
十四、Day14 总结
Day14 的重点不是会打开 BMC 网页,而是建立"健康证据链"视角。
到这一步你应该知道:
- 为什么服务器排障不能只看 OS
- 为什么
sensor和SEL必须一起看 - 为什么有历史过温、掉电、风扇异常时,不能直接带病压测
后面做整机稳定性测试、风扇故障排查、过温问题分析、BMC 健康检查时,这一章会直接变成你的基础能力。
欢迎关注 JACK的服务器笔记,我们下篇见!