GPU 활용률이 허위일 때: 현대 AI를 저해하는 숨은 시스템 문제
팀에 인퍼런스 지연 시간이 갑자기 60% 상승했다는 알림이 들어온다. 대시보드는 혼란스럽다. GPU 활용도는 여전히 정상으로 보인다:
- 79%,
- 82%,
- 84%.
특별히 문제가 되는 부분은 없어 보인다. 자동 스케일링이 작동해 노드가 추가된다. 클라우드 비용이 올라가지만 지연 시간은 거의 개선되지 않는다.
한 시간 뒤, 실제 문제는 의외로 평범한 것이었다: 세 개의 노드가 조용히 손상된 RAID 재구축 상태에 들어가면서 스토리지 처리량이 급격히 감소했고, 인퍼런스 워크로드가 starving 상태에 빠졌다. 스케줄러는 GPU와 메모리 지표가 괜찮아 보였기 때문에 해당 노드들을 “충분히 건강함”으로 판단했다. 쉽게 말해, 해당 머신들의 저장 드라이브 중 하나가 고장났거나 신뢰할 수 없게 되었고, 서버는 남은 드라이브에 손실된 데이터를 복구하느라 바빴다. 머신은 기술적으로는 여전히 온라인 상태였으며 “죽은” 수준은 아니어서 서비스에서 제외되지 않았다. 하지만 디스크 성능이 크게 저하된 것이다.
이러한 종류의 실패는 현대 AI 인프라에서 점점 더 흔해지고 있다. 그리고 이는 많은 GenAI 시스템 아래에 숨겨진 더 깊은 착각을 드러낸다:
GPU는 바쁘게 보이지만 실제로는 생산적이지 않을 수 있다.
그 차이는 미묘하게 들리지만, 재정적으로는 수백만 달러에 이를 수 있다.
현대 AI 시스템은 겉으로는 매끄럽게 보인다. 사용자는 OpenAI의 ChatGPT, Anthropic의 Claude, 혹은 Google의 Gemini에 프롬프트를 보내고 몇 초 안에 다듬어진 답변을 받는다. 그 경험 뒤에는 거대한 협업 문제가 숨어 있다.
- GPU는 텐서 연산을 실행한다.
- CPU는 요청을 받아들이고 데이터를 이동시킨다.
- HBM은 활성값과 KV 캐시를 저장한다.
- SSD는 임베딩과 검색 컨텍스트를 스트리밍한다.
- 네트워크는 그래디언트와 인퍼런스 트래픽을 노드 간에 셔플한다.
- 스토리지 시스템은 재구축, 재시도, 백그라운드 작업을 흡수한다.
이 모든 과정 중 어딘가에서 스케줄러가 워크로드를 어디에 실행할지 결정한다. 그 스케줄러가 조용히 클러스터가 일관된 컴퓨팅 시스템처럼 동작할지, 아니면 비싼 교통 체증처럼 변할지를 좌우한다.
이 글은 Kaarat 등(2023)에서 소개한 Residual‑Aware Geometric Packing (RAGP) 을 기반으로, 현대 AI 스케줄러가 왜 GPU만을 독립적인 컴퓨팅 장치로 취급하는 것이 아니라 스토리지 대역폭, I/O 압력, 동적 자원 행동을 고려해야 하는지를 탐구한다.
핵심 교훈은 단일 스케줄링 알고리즘을 넘어선다. 이는 시스템 문제이며, 점점 경제 문제이기도 하다.
활용도 착각
GPU 활용도는 AI 인프라에서 가장 과신되는 지표 중 하나다. 높은 활용도는 효율적으로 보인다. GPU가 대부분 바쁘면 클러스터는 건강해 보인다.
하지만 활용도 평균은 남은 자원의 구조를 숨긴다. 클러스터는 높은 GPU 점유율, 활발한 워크로드, 높은 메모리 사용량을 보고하면서도 실제 유효 용량은 부족할 수 있다. 문제는 자원이 고갈된 것이 아니라, 남은 자원이 사용 불가능한 조합으로만 남아 있다는 점이다.
예를 들어, 러시아 교통 체증을 생각해 보자. 일부 도로는 비어 있고, 다른 도로는 완전히 막혀 있다. 도로 용량 자체는 존재하지만, 잘못된 교차로가 병목이면 전체 교통 흐름이 느려진다.
분산 AI 시스템도 마찬가지다. 클러스터에 여전히 남은 GPU, HBM, 스토리지, CPU가 존재하지만, 다음 현실적인 워크로드를 효율적으로 수용하지 못한다. 용량이 사라진 것이 아니라, 남은 용량이 잘못된 형태로 존재하기 때문이다.
파편화: 눈에 보이지 않는 실패 모드
다양한 GenAI 워크로드가 폭증한 뒤 세 개의 노드를 살펴보자.
| Node | GPU Compute | HBM | Storage Bandwidth | I/O CPU |
|---|---|---|---|---|
| A | 사용 가능 | 거의 포화 | 사용 가능 | 사용 가능 |
| B | 사용 가능 | 사용 가능 | 포화 | 사용 가능 |
| C | 제한 | 사용 가능 | 사용 가능 | 포화 |
이제 새로운 인퍼런스 워크로드가 들어온다. 요구 사항은:
- 중간 수준 GPU,
- 중간 수준 HBM,
- 정상적인 스토리지 대역폭,
- 정상적인 I/O 용량.
클러스터 전체로 보면 충분한 자원이 아직 남아 있다.
하지만 어느 단일 노드도 남은 자원의 올바른 조합을 갖추고 있지 않다. 워크로드를 깔끔히 배치할 곳이 없다.
이것이 리소스 파편화다. 클러스터가 비어 있는 것이 아니라, 생산적으로 활용하기 어려운 잔여 자원들로 조각난 것이다.

그림 1: 세 노드에 남은 잔여 자원이 존재하지만, 어느 노드도 다음 균형 잡힌 작업을 호스팅할 수 없어 파편화를 보여준다. AI‑보조 다이어그램 도구로 생성
GenAI 시스템에서는 특히 위험하다. 현대 AI 워크로드는 검색 파이프라인, KV 캐시 성장, 스토리지 처리량, 전체 데이터 경로 효율성에 크게 의존한다. 클러스터는 10,000피트 높이에서 건강해 보이지만, 실제로는 눈에 보이지 않게 악화되고 있다.
클러스터에 여유 GPU와 늘어나는 대기열이 동시에 존재할 수 있다
이것이 전체 문제 중 가장 직관에 반하는 부분이다. 클러스터는 동시에 다음을 가질 수 있다.
- 여유 GPU,
- 늘어나는 대기열 시간,
- 악화되는 지연 시간,
- 감소하는 처리량.
첫 눈에 보면 모순처럼 보이지만, 실제로는 그렇지 않다.
만약 “여유” GPU가 스토리지 대역폭이 이미 포화된 노드에 있거나, SSD 큐 깊이가 폭발하고 있거나, I/O CPU가 백그라운드 작업에 잡혀 있다면, 그 GPU는 다음 유용한 워크로드에 의미 있게 사용될 수 없다.
탐욕적인 스케줄러는 여전히 그곳에 작업을 배치한다. 그러면 작업은
- 더 느리게 실행되고,
- 경쟁이 증가하며,
- 대기열 시간이 늘어나고,
- 파편화가 더욱 악화된다.
이것은 악순환을 만든다: 파편화 → 정체 → 실행 시간 증가 → 파편화 확대. 대시보드에서는 클러스터가 여전히 바쁘게 보이지만, 실제 운영에서는 시스템이 스스로를 서서히 질식시키고 있다.
왜 GenAI가 병목 지형을 바꾸었는가
전통적인 스케줄러는 CPU, 메모리, GPU, 네트워크가 배치 결정을 주도하는 환경을 가정했다. 현대 GenAI 시스템은 인프라 압력의 형태를 바꾸었다.
- 검색 중심 파이프라인은 SSD 대역폭을 포화시킬 수 있다.
- 인퍼런스 작업은 시간이 지남에 따라 KV 캐시를 누적한다.
- 체크포인트 로딩은 객체 스토리지를 강타한다.
- 멀티모달 워크로드는 폭발적인 데이터 이동을 만든다.
- 백그라운드 유지보수 작업은 GPU에 공급될 CPU 사이클을 몰래 빼앗는다.
- 노드 수준 스토리지 손상은 노드가 완전히 고장 나기 전부터 유효 처리량을 감소시킨다.
이로써 새로운 인프라 병리 현상이 등장한다: GPU만이 유일한 병목이 아니다. GPU에 데이터를 공급하는 경로도 똑같이 중요해진다. 이는 “건강한 활용도”가 의미하는 바를 바꾼다.
굶주린 GPU도 여전히 비싼 GPU
여기서 경제적 측면이 심각해진다. 현대 AI 인프라는 비용이 많이 든다. 2026년 공개된 NVIDIA H100 사용 가격은 제공업체와 계약 모델에 따라 GPU‑시간당 몇 달러에서 $10 이상까지 다양하다.
이 비용을 대규모 플릿에 적용하면 어떻게 될까?
- 1,000 GPU H100 클러스터가 평균 $3/GPU‑시간이라면,
- $3,000/시간,
- $72,000/일,
- 연간 약 $26 백만
의 비용이 든다. 여기에 네트워킹, 스토리지, 오케스트레이션, 엔지니어링 오버헤드가 추가된다.
이제 파편화와 I/O 정체가 생산적인 GPU 시간의 **10%**만을 낭비한다고 가정하면,
- $300/시간,
- $7,200/일,
- 연간 약 $2.6 백만
이 비효율적인 인프라 비용으로 전환된다. GPU가 사라진 것이 아니라, 시스템이 효율적으로 활용하지 못했기 때문이다.
많은 인프라 팀이 이제 깨