双电源掉一路虽不致宕机,但丧失冗余保护,剩余单路故障将导致整机断电;排查须以ipmitool传感器读数和物理断电验证为准,禁信缓存图标,并核查BMC SEL日志、BIOS冗余策略设置。

双电源掉一路不会导致服务器宕机,但会失去冗余保护——这意味着剩下那路电源一旦出问题,整机立刻断电。排查重点不是“为什么没挂”,而是“哪一路掉了、为什么掉、是否还在带载、有没有触发告警”。
怎么确认是不是真掉了一路电源
别信机箱指示灯或厂商管理界面的“绿色小图标”,它们可能缓存状态或压根不更新。真实依据只有两个:
- 查
ipmitool的原始传感器读数:ipmitool sdr type "Current"或ipmitool sdr type "Voltage",看是否有某路Current显示na、0.000或远低于另一路(比如一路 8A,另一路 0.2A) - 物理检查:关机后拔掉其中一路电源线,再上电,观察系统是否仍能启动并稳定运行;如果不能,说明之前所谓“掉一路”其实是误判,实际是单路供电模式被强制启用或 BIOS 设置异常
注意:ipmitool 需要 BMC 可达且用户有 sensor 权限;云服务器或某些 ODM 厂商设备可能屏蔽该接口,此时只能依赖厂商专用工具(如 Dell 的 racadm、HPE 的 ilorest)。
为什么掉电后系统没报警或日志没记录
常见原因不是硬件沉默,而是日志路径被绕过:
- BMC 日志和系统内核日志是分离的:
dmesg和journalctl几乎从不记录电源插拔事件,必须查 BMC 侧日志:ipmitool sel list(SEL = System Event Log) - SEL 日志默认只保留最近几十条,且部分厂商默认关闭电源类事件记录,需提前配置:
ipmitool raw 0x30 0x70 0x0c 0x01(启用电源事件上报,具体命令依 IPMI 版本而异) - 有些服务器在单路供电时会静默降频或限制 PCIe 插槽供电,不触发告警,但后续加负载(如启动 GPU 或 RAID 重建)就会突然断电——这时要结合
ipmitool sdr type "Power"看实时功耗是否逼近单路额定上限
掉一路后服务还能跑,但业务开始超时,怎么办
这不是网络或应用层问题,大概率是电源切换瞬间引起的电压扰动,导致磁盘 IO 暂停、网卡丢包或 NVMe 设备 reset。不要直接查 nginx 日志,先做三件事:
- 查磁盘响应延迟突增:
iostat -x 1 5看%util是否长期 100、await是否跳到 >100ms;再用smartctl -a /dev/sda确认有没有UDMA_CRC_Error_Count或Hardware_ECC_Recovered上升 - 查网卡驱动是否重置:
ethtool -S eth0 | grep "reset\|error",重点关注tx_timeout_count和rx_restart_count - 确认 PCIe link 宽度是否缩水:
lspci -vv -s $(lspci | grep Ethernet | head -1 | awk '{print $1}') | grep Width,掉电后若从x8降为x1,吞吐量会断崖下跌
BIOS/UEFI 里哪些设置容易让双电源形同虚设
很多服务器出厂默认关掉了关键冗余策略,尤其在虚拟化或容器场景下被误调:
-
AC Power Recovery设为Last State或Off:掉电恢复后,可能只有一路电源参与上电,另一路需手动插拔才能唤醒 -
PSU Redundancy Mode设为Input Based而非Grid Based:当两路输入来自同一 UPS 或同一市电回路时,“Input Based”会认为冗余已失效,自动切到单路模式,却不报错 -
Dynamic Power Mode开启:某些型号会根据负载动态关闭空闲 PSU,但在高负载突增时来不及唤醒,造成瞬时断电
这类设置无法用 Linux 命令修改,必须进 BIOS 逐项核对。最稳妥的做法是拍下当前 BIOS 设置页照片,再对比厂商文档中“Redundant AC Input”章节的推荐值。


















