DCMI 与功耗管理
DCMI 是 IPMI 面向机房场景的扩展规范:在标准 IPMI 之上补充了功耗读取、功耗限额与资产信息等能力,专门解决「机房侧需要统一采集整机功耗」这个需求。用 ipmitool 的 dcmi 子命令可以读取实时与平均功耗、查看当前限额、设置上限。要注意支持度因厂商与机型而异——不支持时命令会直接报错或返回能力缺失,这时只能回到 BMC 传感器或 PDU 计量取数。
基本信息
| 适用平台 | 支持 DCMI 的服务器 BMC(带内或带外均可) |
|---|---|
| 能力查询 | dcmi capabilities 列出该机型支持的功能 |
| 功耗读数 | dcmi power reading 给出实时与平均功耗 |
| 限额管理 | get_limit 读取、set_limit 设置功耗上限 |
| 限额开关 | set_limit action 控制限额动作是否启用 |
| 替代数据源 | BMC 电源传感器、机柜 PDU 计量 |
典型使用场景
- 机柜电力核算:批量采集实测功耗作为规划样本
- 能耗台账:定期采样做趋势分析与成本分摊
- 功耗封顶:在高密度机柜里为单机设置功率上限,避免超限
- 验收取证:装机后采集功耗基线作为交付记录
- 异常排查:实测功耗偏离同型号基线时查找原因
功耗读取与限额
功耗读取与限额
# 先确认该机型支持哪些 DCMI 能力
ipmitool -I lanplus -H 10.0.0.10 -U admin -f /root/.ipmi_pass dcmi capabilities
# 读取实时功耗与平均功耗(含采样周期信息)
ipmitool -I lanplus -H 10.0.0.10 -U admin -f /root/.ipmi_pass dcmi power reading
# 查看当前功耗上限设置
ipmitool -I lanplus -H 10.0.0.10 -U admin -f /root/.ipmi_pass dcmi power get_limit
# 设置功耗上限(单位瓦,具体支持范围按机型确认)
ipmitool -I lanplus -H 10.0.0.10 -U admin -f /root/.ipmi_pass dcmi power set_limit limit 450
# 连续采样观察峰值,规划按峰值而非瞬时值
for i in 1 2 3; do ipmitool -I lanplus -H 10.0.0.10 -U admin -f /root/.ipmi_pass dcmi power reading | grep -i instantaneous; sleep 10; done输出逐项读法
| 输出项 | 含义 | 使用要点 |
|---|---|---|
| Instantaneous Power | 当前瞬时功耗 | 波动较大,适合观察峰值 |
| Average Power | 采样周期内的平均功耗 | 做核算通常更稳定 |
| Power Reading State | 读取状态是否正常 | 状态异常时读数不可信 |
| Activation State | 限额功能是否启用 | 设置限额前先确认开关状态 |
| Limit | 当前功耗上限(瓦) | 与整机实际功耗对比判断余量 |
| Capabilities | 机型支持的能力项 | 不支持时改用传感器或 PDU 取数 |
做容量规划时采一段时间的峰值与均值,用瞬时读数下结论往往偏差很大:整机功耗会随负载与风扇策略波动。
功耗限额不是性能开关:开启后超出限额时 CPU 会降频,先确认业务对性能下降的容忍度,再按维护流程变更。