NVIDIA Triton Inference Server
NVIDIA Triton Inference server with Grafana
김 정출
2024. 10. 25. 20:25
NVIDIA Triton Inference server with Grafana
NVIDIA Triton Inference Server와 Grafana를 활용하여 AI 모델의 추론 성능과 시스템의 상태를 모니터링하는 방법은 아래와 같습니다.
1. Triton Inference Server에서 Metrics 활성화하기
- Triton Inference Server는 Prometheus 형식으로 메트릭을 제공하므로, 설정에서 metrics 옵션을 활성화하고 metrics-port를 지정하여 외부로 노출합니다.
- 예를 들어, 다음과 같은 설정을 사용합니다.
- tritonserver --model-repository=/models --metrics=true --metrics-port=8002
- 활성화하면 추론 성능, 요청 수, 대기 시간, GPU 사용량 등 다양한 메트릭을 수집할 수 있습니다.
2. Prometheus 설정
- Triton에서 노출된 메트릭을 Prometheus를 통해 수집합니다.
- prometheus.yml 설정 파일에 Triton Inference Server의 메트릭 포트를 추가합니다.
- scrape_configs: - job_name: "triton" static_configs: - targets: ["triton_server_ip:8002"]
3. Grafana와 Prometheus 연결하기
- Grafana에서 Prometheus를 데이터 소스로 추가합니다.
- Prometheus URL에 Prometheus 서버의 주소를 입력합니다.
- 추가 후, 메트릭 대시보드를 생성하거나 기존의 Triton 대시보드를 가져올 수 있습니다.
4. Grafana 대시보드 구성
- Triton Inference Server는 모델별 요청 수, 평균 응답 시간, GPU 사용률 등의 다양한 메트릭을 제공합니다.
- Grafana 대시보드에서 Prometheus에서 가져온 메트릭을 사용하여 다양한 그래프와 경고를 설정할 수 있습니다.
- 예를 들어, 모델 별로 요청 수를 트렌드로 시각화하거나, GPU 메모리 사용량과 추론 지연 시간을 모니터링하여 병목 지점을 식별할 수 있습니다.
예시 메트릭
- nv_inference_request_success: 성공적으로 처리된 추론 요청 수
- nv_inference_request_failure: 실패한 요청 수
- nv_inference_queue_duration_us: 대기 시간 (마이크로초)
- nv_inference_compute_duration_us: 추론 처리 시간 (마이크로초)
- nv_gpu_memory_used_bytes: GPU 메모리 사용량
- nv_gpu_utilization: GPU 사용률
경고(Alert) 설정
- Grafana에서 특정 조건에 따른 경고를 설정할 수 있습니다.
- 예를 들어, nv_inference_request_failure 메트릭의 값이 일정 수 이상 증가하면 경고를 보내도록 설정하여 오류를 신속히 대응할 수 있습니다.
이 과정을 통해 NVIDIA Triton Inference Server에서 실행 중인 AI 모델의 성능 및 리소스 사용량을 실시간으로 모니터링하고 최적화하는 데 도움이 됩니다.