web界面内存占用率显示问题-2509

当前版本:2509

920l的自制板,固件更新后,重启系统,ibma通讯正常,但是内存占用率一直没显示

该固件在其他的920s/920l都是显示正常的

会是什么情况造成的,如何排查

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

:pushpin: 总结

原因 概率 推荐动作
BMA未上报 MemUsage :star::star::star::star: 检查 OS 端服务与日志
Host Agent 未注册 :star::star::star::star: 检查 Registered 状态
CSR 配置缺失或默认值为255 :star::star::star: 检查 MemoryMetrics 配置
自制板 VPD/FRU 不兼容 :star::star::star: 更新板级配置文件
openUBMC 2509 特定缺陷 :star::star: 升级至 2512 或 LTS 版本
点击此处查看详细分析解答

Web界面内存占用率显示问题分析(S920X20 + openUBMC 2509)

根据您提供的详细信息,当前问题为:在S920X20硬件平台、openUBMC 25.09.01.07固件版本下,Web界面的“内存占用率”无法正常显示(显示为--),但其他服务器(如920s/920l)在同一固件版本下显示正常,且IBMA通讯正常。

以下是基于知识图谱和文档资料的系统性分析与解决方案建议。


:magnifying_glass_tilted_left: 问题定位:Web界面内存占用率未显示

项目 状态
设备型号 S920X20(920L自制板)
固件版本 openUBMC 25.09.01.07
BIOS版本 10KL1nologo.260107.R
内存在位情况 2/16 已安装
IBMA通信 正常
现象 Web界面“内存占用率”显示为 --

:puzzle_piece: 根本原因分析

1. 内存占用率依赖BMA Agent数据上报

从知识库中的文档块 [3](CSR配置字典之MemoryMetrics类)和KG实体 BandwidthPercent 可知:

  • 内存占用率(BandwidthPercent)默认值为255,表示无效或未初始化状态。
  • Web界面的“内存占用率”显示依赖于 BMA Agent(Host Agent) 向BMC上报的 MemUsage 数据。
  • 在KG关系中明确指出:Memory InformationWeb Interface 存在 “未显示” 的关系,说明存在数据链路中断风险。

文档支持

“内存占用率:您必须先在服务器OS侧安装BMA 2.0,并完全启动后,方可查看内存占用率信息。” —— Document Chunk 3

尽管用户未提及是否安装BMA,但IBMA通信正常,初步推断 BMA服务已在OS侧运行并建立连接。然而,仍可能存在 数据未正确传递或解析 的情况。


2. Host Agent 接口未正确返回内存使用率

KG文档中提及关键调试方式:

busctl --user introspect bmc.kepler.host_agent /bmc/kepler/Systems/1/Sms/1/ComputerSystem/Systems/1/Summary | cat

应检查以下属性是否存在且有有效值:

  • :white_check_mark: MemUsage:内存使用率(百分比)
  • :white_check_mark: TotalSystemMemoryGiB:总内存容量
  • :white_check_mark: SystemMemoryBuffersGiB / SystemMemoryCachedGiB:缓存信息

如果 MemUsage 无值或为 0,则说明 Host Agent 未正确采集或上报数据。


3. S920X20 特定配置或兼容性问题

虽然同为920系列,但 920L为自制板(非标准S920X20),可能存在以下差异:

可能差异 影响
BIOS 配置不同(如内存时序、通道映射) BMC无法正确获取内存DIE信息或SMBIOS数据
VPD/FRU 配置缺失或错误 影响Host Agent加载策略
内存解码器未适配新板型 Memory Decoder无法处理部分内存数据
openUBMC 2509版本对920L支持不完整 存在特定平台的兼容性缺陷

KG中提到:

“openUBMC2509…在生产部署中表现出异常日志模式、告警报告不一致、磁盘事件日志异常等问题。”
—— Entity OpenUBMC2509 描述

即使在标准S920X20上运行稳定,在自制板上仍可能暴露边缘缺陷


4. 资源协作接口状态异常

从KG文档 5 中可查:

  • Host Agent 通过 bmc.kepler.Systems.Sms 提供资源协作接口。
  • 需验证两个关键点:
    1. Registered 是否为 true
    2. State 是否为 0

可通过以下命令检查:

# 查看注册状态
busctl --user get-property bmc.kepler.Systems.Sms /bmc/kepler/Systems/1/Sms bmc.kepler.Systems.Sms Registered

# 查看状态
busctl --user get-property bmc.kepler.Systems.Sms /bmc/kepler/Systems/1/Sms bmc.kepler.Systems.Sms Status

Registered=falseState≠0,则 Host Agent 服务未完全准备就绪,导致内存数据无法同步。


:test_tube: 排查步骤建议

:white_check_mark: 步骤一:确认 Host Agent 是否正常注册

ssh root@192.168.133.250

# 检查注册状态
busctl --user get-property bmc.kepler.Systems.Sms /bmc/kepler/Systems/1/Sms bmc.kepler.Systems.Sms Registered

# 检查运行状态
busctl --user get-property bmc.kepler.Systems.Sms /bmc/kepler/Systems/1/Sms bmc.kepler.Systems.Sms Status

:check_mark: 期望输出:

  • Registered: true
  • Status: 0

:white_check_mark: 步骤二:检查 Host Agent 上报的内存数据

busctl --user introspect \
  bmc.kepler.host_agent \
  /bmc/kepler/Systems/1/Sms/1/ComputerSystem/Systems/1/Summary

重点关注输出中是否包含:

"MemUsage": "65",
"TotalSystemMemoryGiB": "64.0"

:cross_mark: 若无 MemUsage 字段或值为 0255 → 上报失败。


:white_check_mark: 步骤三:一键收集日志分析 host_agent

# 执行一键收集
# 在Web界面:维护诊断 → 一键收集

# 或 SSH 下执行
bmc_collect.sh -t all -o /tmp/dump_info

# 查看 host_agent 日志
cat /tmp/dump_info/AppDump/host_agent/mdb_info.log | grep -i memusage

:white_check_mark: 若日志中无 MemUsage 上报 → 问题出在 OS 端 Host Agent。


:white_check_mark: 步骤四:确认 OS 端 BMA Agent 状态

登录服务器操作系统,检查:

# 检查服务状态
systemctl status ibma

# 查看日志
journalctl -u ibma | grep -i memory

# 确认进程存在
ps aux | grep ibma

:warning: 若服务未启动或频繁重启 → 需排查驱动兼容性、签名问题或依赖缺失。


:white_check_mark: 步骤五:对比其他正常机器的 CSR 配置

检查 MemoryMetrics 类配置是否一致:

{
  "MemoryMetrics": {
    "BandwidthPercent": 65,
    "BandwidthThresholdPercent": 85
  }
}

可通过以下路径检查:

/etc/kepler/configure/csr/

:warning: 若该配置项缺失或 BandwidthPercent255,则 Web 前端会显示为空。


:hammer_and_wrench: 解决方案建议

:white_check_mark: 方案1:重启 Host Agent 服务

systemctl restart ibma
# 观察 Web 界面是否恢复

:white_check_mark: 方案2:强制重载 CSR 配置

# 重启 metrics 服务
systemctl restart bmc.kepler.metrics.service

# 或触发 CSR 重载
bmc_csr_reload.sh

:white_check_mark: 方案3:重新部署适配920L的 VPD/FRU 配置

  • 确保自制板的 VPD 文件已正确烧录。
  • 检查 manifest.ymlboard_name 是否已设为 S920X20920L
  • 若使用社区通用SR,需根据实际硬件修改内存通道、BOM ID等字段(参考文档 [7])。

:white_check_mark: 方案4:升级至已知稳定版本(如 openUBMC2512)

虽然您当前使用2509版本,但可考虑升级至 OpenUBMC2512 或更高版本:

KG说明:

  • OpenUBMC2512 被识别为用于 S920X20 的更新软件版本。
  • 更高版本通常修复了低版本中关于 内存占用率不显示 的UI渲染问题。

:pushpin: 总结

原因 概率 推荐动作
BMA未上报 MemUsage :star::star::star::star: 检查 OS 端服务与日志
Host Agent 未注册 :star::star::star::star: 检查 Registered 状态
CSR 配置缺失或默认值为255 :star::star::star: 检查 MemoryMetrics 配置
自制板 VPD/FRU 不兼容 :star::star::star: 更新板级配置文件
openUBMC 2509 特定缺陷 :star::star: 升级至 2512 或 LTS 版本

:books: 参考文档

  • CSR 配置字典之 MemoryMetrics 类
  • 资源协作接口文档
  • openUBMC 在线调试特性说明
  • 鲲鹏模组适配约束FAQ

:light_bulb: 建议优先执行 busctl 探针命令,最快定位是 数据层缺失 还是 前端渲染问题

如有进一步日志输出,欢迎提供以深入分析。

相关链接:

  1. 2512版本内存占用率不显示
  2. 【BMC Studio】BMC Studio新特性介绍:基于Qemu进行代码调试与资源协作接口调试
  3. 【iTestSmart】BMC启动后处于静默状态,CPU占用率测试,测试结果Fail。
  4. BMC 无法正常显示内存占用率信息
  5. openUBMC 182x大板管理特性设计说明书 | 文档中心 | openUBMC

该问题已在2512版本解决,请使用这之后的版本验证有无问题。具体解决思路为

当下内存的占用率可以通过多种途径查询,仅列出最便捷的几种查询方法

1、通过web首页的系统监控页第三栏内存查看
2、通过redfish URL `https://device_ip/redfish/v1/Systems/1/MemorySummary/MemoryMetrics` 查询 `MemoryMetrics` 资源下的 `BandwidthPercent` 属性
3、通过命令 `mdbctl lsprop MemoryMetrics_1_010101` 查询资源协作接口 `bmc.kepler.Systems.Memory.MemoryMetrics` 下的 `BandwidthPercent` 属性

当下内存的占用率获取依赖bma服务,该服务的使用方式可以参考社区文档:HOST代理管理常见问题指南

当内存占用率获取不到时,你首先可以查看如下信息

busctl --user introspect bmc.kepler.host_agent /bmc/kepler/Systems/1/Sms
bmc.kepler.Systems.Sms              (查看该接口下的 Registered 属性)
Registered
bmc.kepler.Systems.Sms.SmsStatus    (查看该接口下的 State 属性)
State                       

busctl --user introspect bmc.kepler.host_agent /bmc/kepler/Systems/1/Sms/1/ComputerSystem/Systems/1/Summary
bmc.kepler.sms.redfish.Memory       (查看该接口下的 MemUsage 属性)
MemUsage

查看命令回显的 Registered 是否为 true,State 是否为 0,MemUsage 的值是否为小于100的非负数。若上述条件均为是,则可以认为bma正常运行且获取到了内存占用率。现在对于compute组件进行相应的排查,查看是否有如下形式notice级别的日志打印

[system1]sms registered is true
[system1]sms status is 0

如果未出现上述形式的日志打印,可以尝试升级openubmc版本至20251230之后的版本。

compute组件的排查方式可以提供一下吗,谢谢

通过命令 mdbctl lsprop MemoryMetrics_1_010101 查询资源协作接口 bmc.kepler.Systems.Memory.MemoryMetrics 下的 BandwidthPercent 属性

bmc.kepler.Systems.Memory.MemoryMetrics
BandwidthPercent=3

当前查询是这样的,我现在在2509版本下加载官方提供的920lBCUsr再试一下

这边查询到了,web上没显示吗?

对的,您看一下这个图,资源信息下内存有显示,但是系统监控下内存占有率没有显示

看一下rackmount的版本,正常来说资源协作接口上这个属性获取到了,不该出现查询不到的情况。再次确认一下当下是web页面显示内存占用率为–,且资源协作接口上该属性是获取到了的

麻烦发送一下一键收集的如下路径的日志
\dump_info\AppDump\compute\mdb_info.log

好的需要点时间,我让异地同事收集下

顺便查看一下rackmount的版本,具体文件路径为dump_info\RTOSDump\versioninfo\package_info

我这边解决了,BCU的sr换成了920l对应的,现在可以正常显示内存占有率了