OS上电出现日志刷屏

// 此模板仅供参考,如果不适用可以修改

问题描述

OS上电后出现日志刷屏

环境信息

  • 操作系统:[如 Ubuntu 24.04]

  • 软件版本:[如 OpenUBMC2509]

  • 硬件配置:[如 CPU、内存等]

重现步骤

  1. [第一步]

  2. [第二步]

  3. [第三步]

期望结果

[您希望实现什么]

实际结果

[实际发生了什么,包含错误信息]

尝试过的解决方案

[列出您已经尝试过的解决方案及结果]

分析结论

[详细总结您对此问题的分析结论]

native_code ERROR刷屏,1分钟一次

image

KunLun2280V2_2102315QRW10S1100001_20260317-0655.tar.gz (1.5 MB)

KunLun2180V2_2102315NMSN0RB100006_20260312-1058.tar.gz (6.2 MB)

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

OS上电出现日志刷屏问题分析与解决方案

问题描述

在操作系统(OS)上电后,系统日志出现持续刷屏现象,频繁打印与电源策略、网络前缀解析及系统电源状态相关的日志信息。根据提供的日志片段,主要表现为以下行为:

  • 每隔约5分钟重复打印 power_strategy NOTICE: psu_policy.lua(586): Predict power table: []
  • 不断记录 general_hardware NOTICE: fructi_handler.lua(76): get_power_state: system[1] get power power ON
  • 频繁输出 unknown_service NOTICE: prefix.lua(99): eth2: parse and save prefix info...

此问题导致 app.log 文件持续增长,影响系统稳定性与日志可读性。


相关实体与上下文

受影响系统环境

类别 组件
操作系统 Ubuntu 24.04
BMC软件版本 OpenUBMC2509
硬件平台 KunLun2280V2_210231
核心日志文件 app.log
关键进程/模块 power_strategy, fructi_handler.lua, prefix.lua

注:问题已在 Ubuntu 24.04 + OpenUBMC2509 组合环境下确认存在。


日志行为分析

主要日志模式及其含义

日志片段 来源模块 含义 频率
get_power_state: system[1] get power power ON fructi_handler.lua 系统反复确认主机处于“上电”状态 每几十秒至分钟级
Predict power table: [] psu_policy.lua (power_strategy) 尝试获取预测电源表但为空 每5分钟左右
parse and save prefix info prefix.lua 解析并保存 IPv6 路由前缀信息 高频出现

刷屏原因初步判断

  1. power_strategy 模块异常轮询

    • 即便未配置节能或调频功能,power_strategy 组件仍周期性执行任务(如每5分钟检查一次预测功率表)。
    • 当系统中不存在有效调频系统时,会打印日志:
      power_strategy ERROR: scene_mgmt.lua(250): There is no frequency modulation system available
      
  2. IsPowerModeSupported 配置触发非预期行为

    • 根据知识库中的讨论,该日志刷屏行为与 /bmc/kepler/Chassis/:ChassisId/EnergySavingScene 对象下的 IsPowerModeSupported 属性有关。
    • 若该属性被配置为 true,即使无实际节能硬件支持,也会启动定时任务进行检测,从而产生日志。
  3. 系统未抑制空结果日志

    • 获取 Predict power table: [] 为空数据时,系统仍将操作记录为“成功”,未做日志级别抑制,导致无效信息刷屏。

解决方案与建议

:white_check_mark: 推荐解决方法

方法一:禁用无用的节能模式检测

操作目标:关闭触发周期性日志输出的功能开关。

# 使用 mdbctl 命令将 EnergySavingScene 的 IsPowerModeSupported 设为 false
mdbctl setprop set EnergySavingScene_<ChassisId> bmc.kepler.EnergySavingScene IsPowerModeSupported false
  • 替换 <ChassisId> 为实际机箱ID(通常为1)。
  • 或通过 CSR 配置确保此字段默认为 false,避免手动修改。

:backhand_index_pointing_right: 说明:该属性默认应为 false,仅当人为开启节能场景支持时才会激活相关逻辑。

方法二:调整日志级别过滤无用信息

操作目标:降低 power_strategy 等模块的日志输出级别,屏蔽 NOTICE 级别日志。

# 登录 BMC 后调整组件日志等级
mdbctl
attach power_strategy
dloglevel warn  # 只记录 warning 及以上级别日志
  • 此方式可临时缓解日志刷屏问题,适用于无法立即修改配置的现场环境。

方法三:验证并修复底层配置一致性

操作目标:确保 CSR、VPD、BMC 配置对节能能力描述一致。

  • 若硬件实际不支持动态调频/节能模式,则:
    • CSR 中不应启用 EnergySavingSupportedFrequencyModulationSupported
    • 避免在 Redfish 或 Web UI 中展示节能设置入口,防止误启用。

技术背景补充

app.log 的核心作用

  • app.log 是 BMC 上最主要的应用层日志文件,位置通常为 /var/log/app.log
  • 它记录了包括电源管理、固件升级、传感器监控等在内的运行时事件。
  • OS上电 后,若系统检测到某些状态未就绪,会持续输出诊断日志,形成“刷屏”。

:light_bulb: 当前观察到的现象:OS已确认上电(get power ON)后,依然持续进行硬件状态探测,说明部分模块未正确进入“稳定状态”。


涉及人员与讨论记录

  • Yin:首次报告该问题,并提供了原始日志。
  • Kunlun Liuchenxi:参与讨论并指出该问题在特定硬件平台(KunLun2280V2_210231)上复现。
  • Huangzhiyu:曾对类似问题(如“多次启动导致重复打印”)提出分析,强调需区分是否为多阶段启动所致。

结论

OS上电后日志刷屏的根本原因是 power_strategy 模块因配置不当而启动了无效的周期性任务,导致在 app.log 中高频输出非错误但冗余的日志。

处理建议总结

措施 优先级 说明
设置 IsPowerModeSupported=false :star::star::star::star::star: 根本解决,阻止任务启动
调整 power_strategy 日志级别 :star::star::star::star: 快速缓解,适合紧急场景
检查 CSR 与硬件能力匹配性 :star::star::star: 防止同类问题再次发生

建议将 IsPowerModeSupported 字段的配置纳入初始化部署流程,避免因配置漂移引发日志异常。