본문으로 건너뛰기

서버 인벤토리 수집 항목

서버 모니터링 에이전트는 성능 지표와 별개로, 서버의 하드웨어 구성을 주기적으로 수집합니다. 성능 지표만으로는 어떤 장치가 어디에 연결되어 있는지 알 수 없어, 지표에 이상이 보여도 원인 장치를 특정하기 어렵습니다. 인벤토리 항목을 함께 보면 GPU와 네트워크 카드가 어느 NUMA 노드에 붙어 있는지, GPU 사이가 어떤 방식으로 연결되어 있는지까지 확인할 수 있습니다. 이 문서는 AI·HPC 워크로드를 운영하며 장치 구성까지 점검해야 하는 운영자를 대상으로 각 인벤토리 항목의 수집 필드를 안내합니다.

인벤토리 항목은 값이 바뀔 때만 전송합니다. 에이전트는 1시간 주기로 구성을 확인하고, 이전 수집과 비교해 추가·변경·삭제된 항목만 서버로 보냅니다.

각 표의 비고 열에 버전과 함께 신규로 표시한 필드는 해당 버전에서 추가된 항목이며, 표시가 없는 필드는 카테고리가 추가된 시점부터 제공합니다.

server_rdma_inventory

RDMA(InfiniBand·RoCE) 장치와 포트의 구성 정보입니다. RDMA 장치 하나의 포트마다 한 행을 수집하며, 장치 모델·펌웨어·링크 속도부터 연결된 운영체제 네트워크 인터페이스까지 함께 제공합니다.

  • 수집 대상: 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 두 개 사이의 연결 관계입니다. 물리 GPU 쌍마다 한 행을 수집하며, 두 GPU가 어떤 경로로 연결되어 있고 직접 데이터를 주고받을 수 있는지 확인할 때 사용합니다.

  • 수집 대상: Linux
  • 기본 수집 주기: 1시간
FieldTypeUnitDescription
baseGpuIndexstring-기준 GPU 번호
targetGpuIndexstring-상대 GPU 번호. 항상 기준 GPU 번호보다 큼
topologyTypestring-두 GPU 사이의 연결 단계. PIX·PXB·PHB·NODE·SYS·NVn 중 하나. 값이 일관되지 않으면 INCONSISTENT
topologyConsistentstring-양방향 조회 결과가 일치하는지 여부. true 또는 false
interconnectTypestring-연결 방식. NVSwitch·NVLink·PCIe·Unknown
nvLinkCount-countNVLink 연결 수. NVLink 연결이 아니면 0
baseGpuMigModestring-기준 GPU의 MIG 설정 상태. Enabled·Disabled·NotSupported·Unknown
targetGpuMigModestring-상대 GPU의 MIG 설정 상태
peerToPeerSupportedstring-두 GPU 사이의 직접 통신(P2P) 지원 여부. true·false·unknown
peerToPeerStatusstring-P2P 읽기 상태 코드(예: OK·NS·CNS)

연결 단계는 PIX에 가까울수록 두 GPU가 물리적으로 가깝고, SYS에 가까울수록 멉니다. 같은 작업을 처리하는 GPU를 가까운 쌍으로 묶으면 통신 지연을 줄일 수 있습니다.

whatap.conf
gpu.topology.inventory.enabled=true      # 수집 여부 (기본값: true)
gpu.topology.inventory.interval=3600 # 수집 주기, 초 단위 (기본값: 3600)
노트

GPU 수집이 비활성 상태이거나 GPU 드라이버에 접근할 수 없으면 이 항목을 수집하지 않습니다. GPU가 한 개인 서버는 쌍이 만들어지지 않으므로 수집 결과가 비어 있습니다.

server_system_topology

CPU 소켓, NUMA 노드, PCIe 장치를 부모와 자식 관계로 이어 놓은 구성 정보입니다. 연결 관계 하나가 한 행이 되며, 서버 전체의 장치 배치를 트리 형태로 확인할 때 사용합니다.

  • 수집 대상: Linux, Windows
  • 기본 수집 주기: 1시간
FieldTypeUnitDescription
parentDevicestring-상위 장치 이름(예: SYSTEM, NUMA_NODE:0, PCI_BRIDGE:0000:00:01.1)
childDevicestring-하위 장치 이름(예: CPU_SOCKET:0, GPU0, ens192)
deviceTypestring-하위 장치의 종류. CPU_SOCKET·NUMA_NODE·CPU_CORES·MEMORY·PCI_ROOT·GPU·NVSWITCH·RDMA_NIC·NIC·NVME·PCI_BRIDGE·HOST_BRIDGE·PCI_DEVICE
pciBusIdstring-PCI 계층의 장치는 PCI 주소, CPU 계층의 장치는 socket:0·node: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 노드 하나가 한 행이 되며, 노드에 속한 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 장치 사이의 거리입니다. 가까운 순서는 PIX, PXB, PHB, NODE, SYS이며, GPU마다 가장 가까운 단계의 장치만 표시합니다. GPU 통신이 RDMA 장치를 거치는 구성에서 두 장치가 같은 노드에 붙어 있는지 확인할 때 사용합니다.

수집 여부와 주기는 다음 옵션으로 조정합니다.

whatap.conf
numa.inventory.enabled=true      # 수집 여부 (기본값: true)
numa.inventory.interval=3600 # 수집 주기, 초 단위 (기본값: 3600)