当前版本:2509
920l的自制板,固件更新后,重启系统,ibma通讯正常,但是内存占用率一直没显示
该固件在其他的920s/920l都是显示正常的
会是什么情况造成的,如何排查
答案内容由AI生成,仅供参考:
| 原因 | 概率 | 推荐动作 |
|---|---|---|
BMA未上报 MemUsage |
检查 OS 端服务与日志 | |
| Host Agent 未注册 | 检查 Registered 状态 |
|
| CSR 配置缺失或默认值为255 | 检查 MemoryMetrics 配置 |
|
| 自制板 VPD/FRU 不兼容 | 更新板级配置文件 | |
| openUBMC 2509 特定缺陷 | 升级至 2512 或 LTS 版本 |
根据您提供的详细信息,当前问题为:在S920X20硬件平台、openUBMC 25.09.01.07固件版本下,Web界面的“内存占用率”无法正常显示(显示为--),但其他服务器(如920s/920l)在同一固件版本下显示正常,且IBMA通讯正常。
以下是基于知识图谱和文档资料的系统性分析与解决方案建议。
| 项目 | 状态 |
|---|---|
| 设备型号 | S920X20(920L自制板) |
| 固件版本 | openUBMC 25.09.01.07 |
| BIOS版本 | 10KL1nologo.260107.R |
| 内存在位情况 | 2/16 已安装 |
| IBMA通信 | 正常 |
| 现象 | Web界面“内存占用率”显示为 -- |
从知识库中的文档块 [3](CSR配置字典之MemoryMetrics类)和KG实体 BandwidthPercent 可知:
BandwidthPercent)默认值为255,表示无效或未初始化状态。MemUsage 数据。Memory Information 与 Web Interface 存在 “未显示” 的关系,说明存在数据链路中断风险。文档支持:
“内存占用率:您必须先在服务器OS侧安装BMA 2.0,并完全启动后,方可查看内存占用率信息。” —— Document Chunk
3
尽管用户未提及是否安装BMA,但IBMA通信正常,初步推断 BMA服务已在OS侧运行并建立连接。然而,仍可能存在 数据未正确传递或解析 的情况。
KG文档中提及关键调试方式:
busctl --user introspect bmc.kepler.host_agent /bmc/kepler/Systems/1/Sms/1/ComputerSystem/Systems/1/Summary | cat
应检查以下属性是否存在且有有效值:
MemUsage:内存使用率(百分比)TotalSystemMemoryGiB:总内存容量SystemMemoryBuffersGiB / SystemMemoryCachedGiB:缓存信息如果
MemUsage无值或为 0,则说明 Host Agent 未正确采集或上报数据。
虽然同为920系列,但 920L为自制板(非标准S920X20),可能存在以下差异:
| 可能差异 | 影响 |
|---|---|
| BIOS 配置不同(如内存时序、通道映射) | BMC无法正确获取内存DIE信息或SMBIOS数据 |
| VPD/FRU 配置缺失或错误 | 影响Host Agent加载策略 |
| 内存解码器未适配新板型 | Memory Decoder无法处理部分内存数据 |
| openUBMC 2509版本对920L支持不完整 | 存在特定平台的兼容性缺陷 |
KG中提到:
“openUBMC2509…在生产部署中表现出异常日志模式、告警报告不一致、磁盘事件日志异常等问题。”
—— EntityOpenUBMC2509描述
即使在标准S920X20上运行稳定,在自制板上仍可能暴露边缘缺陷。
从KG文档 5 中可查:
bmc.kepler.Systems.Sms 提供资源协作接口。Registered 是否为 trueState 是否为 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=false 或 State≠0,则 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
期望输出:
Registered:trueStatus:0
busctl --user introspect \
bmc.kepler.host_agent \
/bmc/kepler/Systems/1/Sms/1/ComputerSystem/Systems/1/Summary
重点关注输出中是否包含:
"MemUsage": "65",
"TotalSystemMemoryGiB": "64.0"
若无
MemUsage字段或值为0或255→ 上报失败。
# 执行一键收集
# 在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
若日志中无
MemUsage上报 → 问题出在 OS 端 Host Agent。
登录服务器操作系统,检查:
# 检查服务状态
systemctl status ibma
# 查看日志
journalctl -u ibma | grep -i memory
# 确认进程存在
ps aux | grep ibma
若服务未启动或频繁重启 → 需排查驱动兼容性、签名问题或依赖缺失。
检查 MemoryMetrics 类配置是否一致:
{
"MemoryMetrics": {
"BandwidthPercent": 65,
"BandwidthThresholdPercent": 85
}
}
可通过以下路径检查:
/etc/kepler/configure/csr/
若该配置项缺失或
BandwidthPercent为255,则 Web 前端会显示为空。
systemctl restart ibma
# 观察 Web 界面是否恢复
# 重启 metrics 服务
systemctl restart bmc.kepler.metrics.service
# 或触发 CSR 重载
bmc_csr_reload.sh
VPD 文件已正确烧录。manifest.yml 中 board_name 是否已设为 S920X20 或 920L。[7])。虽然您当前使用2509版本,但可考虑升级至 OpenUBMC2512 或更高版本:
KG说明:
OpenUBMC2512被识别为用于 S920X20 的更新软件版本。- 更高版本通常修复了低版本中关于 内存占用率不显示 的UI渲染问题。
| 原因 | 概率 | 推荐动作 |
|---|---|---|
BMA未上报 MemUsage |
检查 OS 端服务与日志 | |
| Host Agent 未注册 | 检查 Registered 状态 |
|
| CSR 配置缺失或默认值为255 | 检查 MemoryMetrics 配置 |
|
| 自制板 VPD/FRU 不兼容 | 更新板级配置文件 | |
| openUBMC 2509 特定缺陷 | 升级至 2512 或 LTS 版本 |
建议优先执行
busctl探针命令,最快定位是 数据层缺失 还是 前端渲染问题。
如有进一步日志输出,欢迎提供以深入分析。
相关链接:
该问题已在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对应的,现在可以正常显示内存占有率了