评审背景
问题
CLI接口ipmcget -d version
实测查询时间1.8-2.5s,BMC的性能基线是命令响应时间2s内
原因分析
ipmcget -d version
查询固件信息时,会遍历资源协作接口 bmc.kepler.UpdateService.FirmwareInfo
的所有对象获取固件信息,对应的资源协作接口路径/bmc/kepler/UpdateService/FirmwareInventory/:Id
下固件信息较多,遍历访问导致当前性能降低。
解决方案
CLI接口获取所有的固件版本信息时,由原来的遍历资源接口访问方式为一次性获取所有的固件信息,降低和资源协作接口的访问次数,提升性能。
评审点
新增资源协作接口方法GetAllFirmwareInfo
,一次性获取所有固件信息
- 资源路径 :
/bmc/kepler/UpdateService/FirmwareInventory
- 资源接口:
bmc.kepler.UpdateService.FirmwareInventory
- 方法 :
GetAllFirmwareInfo
- 权限:ReadOnly
- 请求签名 : 无
- 请求参数 :无
- 响应签名 : a(sa{ss})
- 响应参数 :
array<object>
类型,所有的固件信息列表。其中具体的参数说明如下:FirmwareId
:string
类型,当前固件的标识。如:ActiveBMC
FirmwareInfo
array<string, string>
类型,当前固件的信息。具体的信息见下表1
表1 - GetAllFirmwareInfo 接口获取的固件信息详细说明
属性名称 | 属性类型 | 属性说明 | 示例 |
---|---|---|---|
Id | string | 固件标识 | ActiveBMC |
Version | string | 固件版本 | 5.10.0.2 |
Name | string | 固件对外展示的名称 | ActiveBMC |
Location | string | 存储固件的器件的位号 | U75 |
ReleaseDate | string | 固件发布时间 | 11:41:03 Jun 21 2025 |
BuildNum | string | 固件构建版本号 | 001 |
评审结论
同意在资源协作接口 bmc.kepler.UpdateService.FirmwareInventory
下新增方法 GetAllFirmwareInfo
,用于获取当前所有的固件信息,权限为 ReadOnly
,无请求参数,响应参数见上述评审材料。