由于业务需要获取服务器显卡信息来分配资源,所以打算新增接口来响应GPU信息。
百度许久发现没有直接获取相关信息的工具包,有 oshi 包可以用来获取服务器内存,硬盘等基本信息,但是可惜不支持GPU信息获取;间间获取的方法都是通过bash执行nvidia-smi命令然后截取字符串解析。不过这种方法很不灵活,后来通过查看api,发现nvidia-smi命令可以直接输出xml格式文本,通过xml可以直观的解析GPU信息与进程信息。具体实现如下:
1. 通过 nvidia-smi -q -x 命令获取GPU状态xml信息
Fri Nov 6 16:22:22 2020
396.82
1
Tesla P100-PCIE-16GB
Tesla
Enabled
Disabled
Disabled
Disabled
4000
N/A
N/A
0325017076672
GPU-b4c76a22-4348-7115-cd55-a40390cfb524
0
86.00.41.00.06
No
0x1300
900-2H400-0100-030
H400.0201.00.08
1.1
4.1
N/A
N/A
N/A
Pass-Through
N/A
13
00
0000
15F810DE
00000000:13:00.0
118F10DE
3
3
16x
16x
N/A
N/A
0
0 KB/s
0 KB/s
N/A
P0
Not Active
Not Active
Not Active
Not Active
Not Active
Not Active
Not Active