本文へスキップ

サーバーインベントリの収集項目

サーバーモニタリングエージェントは、パフォーマンス指標とは別に、サーバーのハードウェア構成を定期的に収集します。パフォーマンス指標だけでは、どのデバイスがどこに接続されているかがわからないため、指標に異常が見えても原因となるデバイスを特定しにくくなります。インベントリ項目をあわせて確認すると、GPUとネットワークカードがどのNUMAノードに接続されているか、GPU同士がどのような方式で接続されているかまで確認できます。このドキュメントは、AI・HPCワークロードを運用し、デバイス構成まで点検する必要がある運用者を対象に、各インベントリ項目の収集フィールドを案内します。

インベントリ項目は、値が変わったときにのみ送信します。エージェントは1時間周期で構成を確認し、前回の収集と比較して追加・変更・削除された項目のみをサーバーへ送ります。

各表の備考列にバージョンとともに新規と表示したフィールドは、そのバージョンで追加された項目であり、表示のないフィールドはカテゴリーが追加された時点から提供しています。

server_rdma_inventory

RDMA(InfiniBand・RoCE)デバイスとポートの構成情報です。RDMAデバイス1台のポートごとに1行を収集し、デバイスのモデル・ファームウェア・リンク速度から、接続されたオペレーティングシステムのネットワークインターフェイスまであわせて提供します。

  • 収集対象: Linux
  • デフォルト収集周期: 1時間
FieldTypeUnitDescription
interfaceNamestring-RDMAデバイス名とポート番号(例:mlx5_0:1
rdmaDevicestring-RDMAデバイス名(例:mlx5_0
rdmaNetdevstring-デバイスに接続されたオペレーティングシステムのネットワークインターフェイス。複数ある場合は|で区切ります
rdmaNetdevIpstring-ネットワークインターフェイス別のIPアドレス(CIDR表記)。複数ある場合は|で区切ります
rdmaDeviceTypestring-デバイスのASICの種類(例:MT4123
rdmaDeviceModelstring-デバイスのモデル名(例:ConnectX-6
rdmaLinkLayerstring-リンク層。InfiniBandまたはEthernet
rdmaNumaNodestring-デバイスが属するNUMAノード番号。確認できない場合は-1
rdmaPciBusIdstring-PCIアドレス(例:0000:81:00.0
rdmaPortstring-ポート番号
rdmaRatestring-ポートのリンク速度(例:100 Gb/sec (4X EDR)
rdmaMtustring-ポートの有効MTU
rdmaNetdevMtustring-ネットワークインターフェイス別のMTU。複数ある場合は|で区切ります
rdmaDriverNamestring-カーネルドライバー名(例:mlx5_core
rdmaDriverVersionstring-ドライバーバージョン
rdmaFirmwareVersionstring-デバイスのファームウェアバージョン
rdmaBondMasterstring-ネットワークインターフェイスが属するボンディング名
rdmaNodeGuidstring-デバイスのNode GUID
rdmaPortGuidstring-ポートのPort GUID
rdmaSysImageGuidstring-デバイスのSystem Image GUID
rdmaSubnetPrefixstring-ポートが属するサブネットプレフィックス
rdmaVlanIdstring-ネットワークインターフェイス別のVLAN ID
storageMountstring-そのネットワークインターフェイスを経由して接続されたリモートストレージのマウントポイント

収集の有無と周期は、次のオプションで調整します。

whatap.conf
rdma.inventory.enabled=true      # 収集の有無 (デフォルト: true)
rdma.inventory.interval=3600 # 収集周期、秒単位 (デフォルト: 3600)

server_gpu_topology

GPU 2台の間の接続関係です。物理GPUのペアごとに1行を収集し、2つのGPUがどの経路で接続されており、直接データをやり取りできるかを確認する際に使用します。

  • 収集対象: Linux
  • デフォルト収集周期: 1時間
FieldTypeUnitDescription
baseGpuIndexstring-基準GPUの番号
targetGpuIndexstring-相手GPUの番号。常に基準GPUの番号より大きい
topologyTypestring-2つのGPU間の接続段階。PIXPXBPHBNODESYSNVnのいずれか。値が一貫していない場合はINCONSISTENT
topologyConsistentstring-双方向の照会結果が一致するかどうか。trueまたはfalse
interconnectTypestring-接続方式。NVSwitchNVLinkPCIeUnknown
nvLinkCount-countNVLink接続数。NVLink接続でない場合は0
baseGpuMigModestring-基準GPUのMIG設定状態。EnabledDisabledNotSupportedUnknown
targetGpuMigModestring-相手GPUのMIG設定状態
peerToPeerSupportedstring-2つのGPU間の直接通信(P2P)のサポート有無。truefalseunknown
peerToPeerStatusstring-P2P読み取りの状態コード(例:OKNSCNS

接続段階はPIXに近いほど2つのGPUが物理的に近く、SYSに近いほど遠くなります。同じ処理を担当するGPUを近いペアにまとめると、通信の遅延を減らせます。

whatap.conf
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時間
FieldTypeUnitDescription
parentDevicestring-上位デバイス名(例:SYSTEMNUMA_NODE:0PCI_BRIDGE:0000:00:01.1
childDevicestring-下位デバイス名(例:CPU_SOCKET:0GPU0ens192
deviceTypestring-下位デバイスの種類。CPU_SOCKETNUMA_NODECPU_CORESMEMORYPCI_ROOTGPUNVSWITCHRDMA_NICNICNVMEPCI_BRIDGEHOST_BRIDGEPCI_DEVICE
pciBusIdstring-PCI階層のデバイスはPCIアドレス、CPU階層のデバイスはsocket:0node:0の形式の識別子
pcieDepthstring-PCIe経路の深さ。CPU・NUMA・メモリ階層は0

ツリーの最上位の名前はSYSTEMです。収集はカーネルが提供する情報(Linuxはsysfs、Windowsはデバイス情報)のみを使用するため、別途のコマンドは実行しません。

whatap.conf
system.topology.enabled=true      # 収集の有無 (デフォルト: true)
system.topology.interval=3600 # 収集周期、秒単位 (デフォルト: 3600)

server_numa_inventory

NUMAノード別の構成情報です。NUMAノード1つが1行になり、ノードに属するCPUとメモリ、そして同じノードに接続されたGPU・RDMA・NVMeデバイスをあわせて提供します。

  • 収集対象: Linux
  • デフォルト収集周期: 1時間
FieldTypeUnitDescription備考
numaNodeIdstring-NUMAノード番号
cpuListstring-ノードに属するCPUのリスト(例:0-7,16-23
logicalCores-countノードに属する論理CPU数
memorySize-byteノードに属するメモリサイズ
gpuIndexesstring-ノードに接続されたNVIDIA GPU番号のリスト。カンマと空白で区切ります
rdmaDevicesstring-ノードに接続されたRDMAデバイス名のリスト(例:mlx5_0, mlx5_1)。カンマと空白で区切ります
rdmaNetDevsstring-該当のRDMAデバイスに接続されたネットワークインターフェイスのリスト。カンマと空白で区切ります
nvmeDevicesstring-そのNUMAノードに接続されたNVMeデバイス名のリスト(例:nvme0, nvme1)。カンマと空白で区切ります2.9.22 新規
gpuRdmaAffinitystring-そのNUMAノードのGPUごとに最も近いRDMAデバイスをGPU0:mlx5_0(PIX)の形式で表示。複数ある場合はカンマと空白で区切ります2.9.22 新規

gpuRdmaAffinityの括弧内の値は、GPUとRDMAデバイスの間の距離です。近い順はPIXPXBPHBNODESYSで、GPUごとに最も近い段階のデバイスのみを表示します。GPU通信がRDMAデバイスを経由する構成で、2つのデバイスが同じノードに接続されているかを確認する際に使用します。

収集するかどうかと周期は、次のオプションで調整します。

whatap.conf
numa.inventory.enabled=true      # 収集するかどうか(デフォルト値: true)
numa.inventory.interval=3600 # 収集周期、秒単位(デフォルト値: 3600)