サーバーインベントリの収集項目
サーバーモニタリングエージェントは、パフォーマンス指標とは別に、サーバーのハードウェア構成を定期的に収集します。パフォーマンス指標だけでは、どのデバイスがどこに接続されているかがわからないため、指標に異常が見えても原因となるデバイスを特定しにくくなります。インベントリ項目をあわせて確認すると、GPUとネットワークカードがどのNUMAノードに接続されているか、GPU同士がどのような方式で接続されているかまで確認できます。このドキュメントは、AI・HPCワークロードを運用し、デバイス構成まで点検する必要がある運用者を対象に、各インベントリ項目の収集フィールドを案内します。
インベントリ項目は 、値が変わったときにのみ送信します。エージェントは1時間周期で構成を確認し、前回の収集と比較して追加・変更・削除された項目のみをサーバーへ送ります。
各表の備考列にバージョンとともに新規と表示したフィールドは、そのバージョンで追加された項目であり、表示のないフィールドはカテゴリーが追加された時点から提供しています。
server_rdma_inventory
RDMA(InfiniBand・RoCE)デバイスとポートの構成情報です。RDMAデバイス1台のポートごとに1行を収集し、デバイスのモデル・ファームウェア・リンク速度から、接続されたオペレーティングシステムのネットワークインターフェイスまであわせて提供します。
- 収集対象: Linux
- デフォルト収集周期: 1時間
| Field | Type | Unit | Description |
|---|---|---|---|
interfaceName | string | - | RDMAデバイス名とポート番号(例:mlx5_0:1) |
rdmaDevice | string | - | RDMAデバイス名(例:mlx5_0) |
rdmaNetdev | string | - | デバイスに接続されたオペレーティングシステムのネットワークインターフェイス。 複数ある場合は|で区切ります |
rdmaNetdevIp | string | - | ネットワークインターフェイス別のIPアドレス(CIDR表記)。複数ある場合は|で区切ります |
rdmaDeviceType | string | - | デバイスのASICの種類(例:MT4123) |
rdmaDeviceModel | string | - | デバイスのモデル名(例:ConnectX-6) |
rdmaLinkLayer | string | - | リンク層。InfiniBandまたはEthernet |
rdmaNumaNode | string | - | デバイスが属するNUMAノード番号。確認できない場合は-1 |
rdmaPciBusId | string | - | PCIアドレス(例:0000:81:00.0) |
rdmaPort | string | - | ポート番号 |
rdmaRate | string | - | ポートのリンク速度(例:100 Gb/sec (4X EDR)) |
rdmaMtu | string | - | ポートの有効MTU |
rdmaNetdevMtu | string | - | ネット ワークインターフェイス別のMTU。複数ある場合は|で区切ります |
rdmaDriverName | string | - | カーネルドライバー名(例:mlx5_core) |
rdmaDriverVersion | string | - | ドライバーバージョン |
rdmaFirmwareVersion | string | - | デバイスのファームウェアバージョン |
rdmaBondMaster | string | - | ネットワークインターフェイスが属するボンディング名 |
rdmaNodeGuid | string | - | デバイスのNode GUID |
rdmaPortGuid | string | - | ポートのPort GUID |
rdmaSysImageGuid | string | - | デバイスのSystem Image GUID |
rdmaSubnetPrefix | string | - | ポートが属するサブネットプレフィックス |
rdmaVlanId | string | - | ネットワークインターフェイス別のVLAN ID |
storageMount | string | - | そのネットワークインターフェイスを経由して接続されたリモートストレージのマウントポイント |
収集の有無と周期は、次のオプションで調整します。
rdma.inventory.enabled=true # 収集の有無 (デフォルト: true)
rdma.inventory.interval=3600 # 収集周期、秒単位 (デフォルト: 3600)
server_gpu_topology
GPU 2台の間の接続関係です。物理GPUのペアごとに1行を収集し、2つのGPUがどの経路で接続されており、直接データをやり取りできるかを確認する際に使用します。
- 収集対象: Linux
- デフォルト収集周期: 1時間
| Field | Type | Unit | Description |
|---|---|---|---|
baseGpuIndex | string | - | 基準GPUの番号 |
targetGpuIndex | string | - | 相手GPUの番号。常に基準GPUの番号より大きい |
topologyType | string | - | 2つのGPU間の接続段階。PIX・PXB・PHB・NODE・SYS・NVnのいずれか。値が一貫していない場合はINCONSISTENT |
topologyConsistent | string | - | 双方向の照会結果が一致するかどうか。trueまたはfalse |
interconnectType | string | - | 接続方式。NVSwitch・NVLink・PCIe・Unknown |
nvLinkCount | - | count | NVLink接続数。NVLink接続でない場合は0 |
baseGpuMigMode | string | - | 基準GPUのMIG設定状態。Enabled・Disabled・NotSupported・Unknown |
targetGpuMigMode | string | - | 相手GPUのMIG設定状態 |
peerToPeerSupported | string | - | 2つのGPU間の直接通信(P2P)のサポート有無。true・false・unknown |
peerToPeerStatus | string | - | P2P読み取りの状態コード(例:OK・NS・CNS) |
接続段階はPIXに近いほど2つのGPUが物理的に近く、SYSに近いほど遠くなります。同じ処理を担当するGPUを近いペアにまとめると、通信の遅延を減らせます。
gpu.topology.inventory.enabled=true # 収集の有無 (デフォルト: true)
gpu.topology.inventory.interval=3600 # 収集周期、秒単位 (デフォルト: 3600)
GPUの収集が無効な場合や、GPUドライバーにアクセスできない場合は、この項目を収集しません。GPUが1台のサーバーはペアが作られないため、収集結果は空になります。
server_system_topology
CPUソケット、NUMAノード、PCIeデバイスを親子関係でつないだ構成情報です。1つの接続関係が1行になり、サーバー全体のデバイス配置をツリー形式で確認する際に使用します。
- 収集対象: Linux, Windows
- デフォルト収集周期: 1時間
| Field | Type | Unit | Description |
|---|---|---|---|
parentDevice | string | - | 上位デバイス名(例:SYSTEM、NUMA_NODE:0、PCI_BRIDGE:0000:00:01.1) |
childDevice | string | - | 下位デバイス名(例:CPU_SOCKET:0、GPU0、ens192) |
deviceType | string | - | 下位デバイスの種類。CPU_SOCKET・NUMA_NODE・CPU_CORES・MEMORY・PCI_ROOT・GPU・NVSWITCH・RDMA_NIC・NIC・NVME・PCI_BRIDGE・HOST_BRIDGE・PCI_DEVICE |
pciBusId | string | - | PCI階層のデバイスはPCIアドレス、CPU階層のデバイスはsocket:0・node:0の形式の識別子 |
pcieDepth | string | - | PCIe経路の深さ。CPU・NUMA・メモリ階層は0 |
ツリーの最上位の名前はSYSTEMです。収集はカーネルが提供する情報(Linuxはsysfs、Windowsはデバイス情報)のみを使用するため、別途のコマンドは実行しません。
system.topology.enabled=true # 収集の有無 (デフォルト: true)
system.topology.interval=3600 # 収集周期、秒単位 (デフォルト: 3600)
server_numa_inventory
NUMAノード別の構成情報です。NUMAノード1つが1行になり、ノードに属するCPUとメモリ、そして同じノードに接続されたGPU・RDMA・NVMeデバイスをあわせて提供します。
- 収集対象: Linux
- デフォルト収集周期: 1時間
| Field | Type | Unit | Description | 備考 |
|---|---|---|---|---|
numaNodeId | string | - | NUMAノード番号 | |
cpuList | string | - | ノードに属するCPUのリスト(例:0-7,16-23) | |
logicalCores | - | count | ノードに属する論理CPU数 | |
memorySize | - | byte | ノードに属するメモリサイズ | |
gpuIndexes | string | - | ノードに接続されたNVIDIA GPU番号のリスト。カンマと空白で区切ります | |
rdmaDevices | string | - | ノードに接続されたRDMAデバイス名のリスト(例:mlx5_0, mlx5_1)。カンマと空白で区切ります | |
rdmaNetDevs | string | - | 該当のRDMAデバイスに接続されたネットワークインターフェイスのリスト。カンマと空白で区切ります | |
nvmeDevices | string | - | そのNUMAノードに接続されたNVMeデバイス名のリスト(例:nvme0, nvme1)。カンマと空白で区切ります | 2.9.22 新規 |
gpuRdmaAffinity | string | - | そのNUMAノードのGPUごとに最も近いRDMAデバイスをGPU0:mlx5_0(PIX)の形式で表示。複数ある場合はカンマと空白で区切ります | 2.9.22 新規 |
gpuRdmaAffinityの括弧内の値は、GPUとRDMAデバイスの間の距離です。近い順はPIX、PXB、PHB、NODE、SYSで、GPUごとに最も近い段階のデバイスのみを表示します。GPU通信がRDMAデバイスを経由する構成で、2つのデバイスが同じノードに接続されているかを確認する際に使用します。
収集するかどうかと周期は、次のオプションで調整します。
numa.inventory.enabled=true # 収集するかどうか(デフォルト値: true)
numa.inventory.interval=3600 # 収集周期、秒単位(デフォルト値: 3600)