功率封顶失败之后,并没有执行动作。

问题描述

当配置成为 “功率封顶失败策略”是”关机“。但当失败后,产生了失败事件,但并没有产生关机动作。

重现步骤

  1. BIOS里面将 电源策略”(Power Policy)设置为“性能”(Performance)模式

  2. 功率封顶配置


    sr相关内容:“PowerStrategy_1”: {

            "PowerWorkingMode": "LoadBalancing",
    
            "PowerLimitValue": 9999,
    
            "PowerLimitEnabled": false,
    
            "PowerLimitFailed": false,
    
            "PowerLimitActivated": false,
    
            "PowerCappingSupported": true,
    
            "PowerLimitExceptionSupported": true,
    
            "DeepSleepSupported": false,
    
            "ActiveStandbySupported": true,
    
            "IsSupportPowerLimitMode": true,
    
            "PowerCappingDevices": \["CPU"\],
    
            "NormalAndRedundancySupported": false
    
        },
    
  3. 对系统加压,让功耗升上去。

  4. 系统产生了失败的日志

2026-08-10 20:09:02.163631 bmc_time WARNING: rtc_time.lua(45): [bmc_time] update time failed over 5 times
2026-08-10 20:09:36.017182 bmc_time WARNING: rtc_time.lua(45): [bmc_time] update time failed over 5 times
2026-08-10 20:09:47.394558 unknown_service NOTICE: prefix.lua(99): eth2: parse and save prefix info, router_addr: fe80::20c:29ff:fefc:c106, prefix_len: 64
2026-08-10 20:09:48.874222 event NOTICE: events.lua(116): System normal count change 1 by [Event_SystemPowerCapFailure_01010A].
2026-08-10 20:09:48.875432 event NOTICE: hardware_event.lua(570): Event_SystemPowerCapFailure_01010A|{“source”:{“properties”:[{“Service”:“bmc.kepler.power_strategy”,“Property”:“PowerLimitFailed”,“Interface”:“bmc.kepler.Systems.PowerStrategy”,“Path”:“/bmc/kepler/Systems/1/PowerStrategy”}]},“type”:“synchronization”,“value”:[true]}
2026-08-10 20:09:48.927553 sensor NOTICE: sel_management.lua(692): add sel[{“GenerateId”:32,“RecordId”:1944,“SelEventType”:3,“SelMsgVersion”:4,“SelType”:2,“SensorId”:“DiscreteSensor_PwrCapStatus_01010A”,“SensorName”:“PwrCap Status”,“SelData3”:255,“SelData2”:255,“SelData1”:1,“SensorNumber”:27,“Timestamp”:1786363788,“SubjectName”:“MainBoard”,“SensorType”:18,“RecordSeq”:3960}] successfully, record id is 1944
2026-08-10 20:09:48.927920 sensor NOTICE: sensor_instance.lua(276): [DiscreteSensor_PwrCapStatus_01010A] assert an event [event dir: 1]
2026-08-10 20:09:48.933325 event_policy NOTICE: synchronizer.lua(280): received a sel[3960]
2026-08-10 20:09:48.935328 redfish NOTICE: alarm.lua(644): received a sel[3960]
2026-08-10 20:09:49.017407 event NOTICE: abstract_event.lua(241): [Event_SystemPowerCapFailure_01010A] generate an event [assert] while Reading change to [1].
2026-08-10 20:09:49.031033 event_policy NOTICE: synchronizer.lua(252): received a event[4811-0].
2026-08-10 20:09:49.038116 redfish NOTICE: alarm.lua(600): received a event[4811-0].
2026-08-10 20:10:07.023245 power_strategy NOTICE: power_strategy_utils.lua(89): Update MinPowerLimitInPower to 477
2026-08-10 20:10:09.644140 bmc_time WARNING: rtc_time.lua(45): [bmc_time] update time failed over 5 times
2026-08-10 20:10:39.944385 thermal_mgmt NOTICE: cooling_mgmt.lua(958): Set all fan level successfully [repeated 144 times in 302s from 2026-08-10 20:05:37.606180 to 2026-08-10 20:10:39.944385]
2026-08-10 20:10:43.878594 bmc_time WARNING: rtc_time.lua(45): [bmc_time] update time failed over 5 times
2026-08-10 20:10:54.645418 unknown_service NOTICE: prefix.lua(99): eth2: parse and save prefix info, router_addr: fe80::20c:29ff:fefc:c106, prefix_len: 64
2026-08-10 20:11:17.531636 bmc_time WARNING: rtc_time.lua(45): [bmc_time] update time failed over 5 times
2026-08-10 20:11:27.024039 power_strategy NOTICE: power_strategy_utils.lua(89): Update MinPowerLimitInPower to 432
2026-08-10 20:11:51.391469 bmc_time WARNING: rtc_time.lua(45): [bmc_time] update time failed over 5 times
2026-08-10 20:12:01.718540 unknown_service NOTICE: prefix.lua(99): eth2: parse and save prefix info, router_addr: fe80::20c:29ff:fefc:c106, prefix_len: 64
2026-08-10 20:12:25.434048 bmc_time WARNING: rtc_time.lua(45): [bmc_time] update time failed over 5 times
2026-08-10 20:12:59.650365 bmc_time WARNING: rtc_time.lua(45): [bmc_time] update time failed over 5 times
2026-08-10 20:13:08.815906 unknown_service NOTICE: prefix.lua(99): eth2: parse and save prefix info, router_addr: fe80::20c:29ff:fefc:c106, prefix_len: 64
2026-08-10 20:13:28.956499 power_mgmt ERROR: power_mgmt_utils.lua(57): time service failed, psid: 1, error info: BMC.Error.Unknow: ./opt/bmc/libmc/lualib/mc/context.lua:203: ./opt/bmc/libmc/lualib/sd_bus/object.lua:317: ./opt/bmc/apps/hwproxy/lualib/hwproxy_objects/app_bus.lua:104: ./opt/bmc/apps/hwproxy/lualib/hw_utils/hw_wait_access.lua:101: chip: Eeprom_PsuChip1_0101, bus: I2c_9, write failed: i2c.lua:120: response error, i2c write fail, ret: 5, input:{“is_trace”:false,“len”:6,“requestor”:“bmc.kepler.power_mgmt”,“mask”:4294967295,“offsetWidth”:1,“type”:1,“rw_type”:0,“buffer”:"04 68 C0 79 6A 33 ",“name”:“Eeprom_PsuChip1_0101”,“has_error”:false,“addrWidth”:1,“offset”:250,“addr”:176} [repeated 1 times in 600s from 2026-08-10 20:03:28.708105 to 2026-08-10 20:13:28.956499]
2026-08-10 20:13:33.297152 bmc_time WARNING: rtc_time.lua(45): [bmc_time] update time failed over 5 times

mdbctl lsprop PowerStrategy_1_01010A
bmc.kepler.Object.Properties
ClassName=“PowerStrategy”
ObjectIdentifier=[1,“1”,“1”,“01010A”]
ObjectName=“PowerStrategy_1_01010A”
TraceSamplingRate=0
bmc.kepler.Systems.PowerStrategy
ActiveStandbySupported=true
DeepSleep=“Disabled”
DeepSleepSupported=false
EnergyEfficiencyOptimizationSupported=false
EnergySavingSupported=false
ExpectedActivePSU=
HighPowerThresholdWatts=700
MaxPowerLimitInWatts=2100
MinPowerLimitInWatts=432
NormalAndRedundancy=“Disabled”
NormalAndRedundancySupported=false
PSUsOutputCurrentImbalance=false
PSUsOutputVoltageLow=false
PSUsUnavailableOfflineCause=0
PowerActualWorkingMode=“LoadBalancing”
PowerCappingControlMode=0
PowerCappingFailureOptions=[“LogEventOnly”,“NoAction”,“HardPowerOff”,“Reset”]
PowerCappingSupported=true
PowerLimitActivated=false
PowerLimitEnabled=true
PowerLimitException=“HardPowerOff”
PowerLimitExceptionLogEvent=true
PowerLimitExceptionSupported=true
PowerLimitFailed=true
PowerLimitMode=“Equal”
PowerLimitValue=350
PowerLimitWhenSteady=true
PowerPredictSupported=false
PowerWorkingMode=“LoadBalancing”
PresetLimitInWatts=9999
RedundancyFailure=false
RedundancyMode=0
WorkModeConfigurable=false
Private
AllowableMinPowerLimitInWatts=0
CapLowerThresholdPercent=0
CapStopThresholdPercent=0
CapUpperThresholdPercent=0
CustomPSActiveStandby=false
ExpectedActivePSUList=“”
Id=0
IsSupportPowerLimitMode=true
PSActiveStandbyMaxLevel=75
PSActiveStandbyMinLevel=65
PhaseWiringSlots=
PowerCappingDevices=[“CPU”]
ReviseParam=1.3
iRMHeartBeatTime=0

期望结果

按照设置策略,失败后,应该会关机的。

实际结果

但实际上只产生事件,并没有根据失败这个事件,执行关机动作。

答案内容由AI生成,仅供参考:

结论

当前问题的直接原因是 PowerLimitEnabled 设置为 false,导致功耗封顶功能未真正生效。尽管产生了失败事件,但系统不会执行预设的关机策略。启用功耗封顶使能后,重新测试应可正常触发关机动作。若仍有异常,请进一步排查硬件层功耗采集正确性(如风扇未插满导致整机功耗不准)及模式自动切换问题。

点击此处查看详细分析解答

根据您提供的上下文信息,以下是对“功率封顶失败后未执行关机动作”问题的分析。

核心原因分析

在您给出的 PowerStrategy_1 配置片段中,存在一个关键属性:

  • PowerLimitEnabled: false

这个属性决定了功耗封顶功能是否整体使能。即使您设置了 PowerLimitValue(封顶值)和 PowerCappingFailureOptions(失败策略),若 PowerLimitEnabledfalse,整个功耗封顶机制不会被激活,因此系统不会在“封顶失败”事件发生时执行关机(HardPowerOff)动作。

该判断与上下文中的已知排查逻辑一致:

来自文档块“CPU功耗封顶失效”的排查建议
“首先,功耗封顶功能的整体使能状态是前提。即使成功设置了 PowerLimitValue(功耗封顶值),如果 PowerLimitEnabled(功耗封顶使能)属性为 false,则封顶策略不会被激活。您需要检查并确保通过 SetPowerLimitEnabled 方法将此开关打开。”

日志与状态对照

日志中确实产生了 Event_SystemPowerCapFailure_01010A 事件,表明 PowerLimitFailed 状态被置为 true。但从您提供的配置看,PowerLimitFailed 的初始值为 false,且 PowerLimitEnabled 也为 false。这种“失败事件”可能来自 BMC 对功率封顶值与系统功耗值的检查任务(如文档块“功耗封顶事件未产生问题分析”所述),而非真正的封顶机制触发的失败。由于封顶功能未使能,系统不会对这类事件执行预设的失败策略。

推荐排查步骤

  1. 确认 PowerLimitEnabled 是否为 true
    通过 SetPowerLimitEnabled 方法或 bmc.kepler.Systems.PowerStrategy 接口启用功耗封顶功能。

  2. 检查基础支持属性是否正常

    • PowerCappingSupported 应为 true(您配置中为 true,正常)。
    • IsSupportPowerLimitMode 应为 true(配置中为 true,支持)。
    • 检查 RedundancyFailure 状态(配置中为 false,但需确认实际运行时是否变化),若为 true 可能导致策略异常。
  3. 验证失败策略配置是否正确
    PowerCappingFailureOptions 包含 HardPowerOff,对应关机动作。但只有在封顶功能正常激活且真实触发失败时,该策略才会执行。

  4. 关注已知缺陷
    社区已知的 power_strategy 组件自动切换逻辑 可能导致用户配置的模式被意外回退,界面显示与实际模式不一致。您可在当前版本日志中留意是否存在模式切换记录(参考文档块“CPU功耗封顶失效”)。

结论

当前问题的直接原因是 PowerLimitEnabled 设置为 false,导致功耗封顶功能未真正生效。尽管产生了失败事件,但系统不会执行预设的关机策略。启用功耗封顶使能后,重新测试应可正常触发关机动作。若仍有异常,请进一步排查硬件层功耗采集正确性(如风扇未插满导致整机功耗不准)及模式自动切换问题。

实际下电的动作由BIOS执行,烦请给出全量日志,便于进一步分析

功耗封顶失败日志N_A_20260812-1318.tar.gz (3.3 MB)

重新抓取,并上传了日志。

问题1 :为什么会失败

问题2:失败原因后,为什么没有下电。

麻烦了

1、关于为什么会封顶失败
BMC有自己的检查机制,若整机功耗较长时间高于封顶值,则会上报封顶失败
2、关于为什么没有下电
查看日志,发现已将封顶使能状态、封顶值与封顶失败动作下发给BIOS
烦请确认当前机型与使用的BIOS归属