1. Steal CPU란 무엇인가
가상 머신에서 애플리케이션이 느려지는데 CPU 사용률은 낮게 나오는 경우가 있다.
이때 대부분의 원인은 하이퍼바이저 레벨에서 발생하는 Steal CPU다.
Steal CPU는 다음 상황을 의미한다.
VM이 지금 당장 실행할 준비가 되어 있었지만,
하이퍼바이저가 다른 VM에게 CPU를 먼저 할당하여
실행되지 못하고 기다린 시간.
CPU 리소스가 부족할 때 VM이 “Runnable(실행 대기)” 상태로 밀리면서 누적되는 지연이 바로 Steal이다.
2. 하이퍼바이저 CPU 공유 구조

- vCPU는 물리 CPU가 아니다.
- 하이퍼바이저가 시간 단위(time slice)로 pCPU를 vCPU에 배정한다.
- VM C처럼 Runnable 상태(RDY)로 올라와 있을 때도 pCPU가 바쁘면 계속 밀린다.
- 이 밀린 시간이 Steal CPU다.
3. vCPU 개념 정리
VM 환경
vCPU는 물리 코어의 복제본이 아니라, 하이퍼바이저가 만든 논리 CPU 슬롯이다.
물리 코어 수보다 많은 vCPU를 생성할 수 있고, 이 비율이 크면 클수록 Steal이 발생하기 쉽다.
컨테이너 환경
컨테이너에는 vCPU 개념이 존재하지 않는다.
컨테이너의 CPU 제한은 cgroup이 pCPU(또는 vCPU) 시간을 배분하는 방식이다.
여기서 실무에서 자주 발생하는 혼동이 있다.
- Throttle: VM은 CPU를 받고 있으나, 컨테이너 리미트가 막아 실행이 제한됨
- Steal: VM이 CPU를 받고 있지 못함 (하이퍼바이저가 다른 VM을 우선함)
둘은 완전히 다른 현상이다.
컨테이너가 VM 위에서 실행되는 클라우드 환경(EKS, GKE 등)에서는
컨테이너 Throttle과 VM Steal이 동시에 섞여 문제를 일으킬 수 있다.
둘을 구분해서 진단해야 한다.
베어메탈 환경
물리 CPU와 스레드만 있으므로 vCPU라는 표현은 성립하지 않는다.
4. Steal CPU가 의미하는 성능 지표
VM 내부에서는 CPU idle이 남는 것처럼 보이는데
애플리케이션은 느려지는 전형적 증상이 Steal 때문이다.
| Steal% | 의미 |
|---|---|
| 0% | 정상 |
| 1–5% | 약한 리소스 경쟁 |
| 5–10% | 느려짐 체감 가능 |
| 10–20% | 분명한 병목 |
| 20%+ | 물리 CPU 부족. 심각한 지연 발생 |
5. Steal 발생 원리(타임라인)

- RDY(Runnable) 상태는 CPU를 요청하고 있는 상태다.
- pCPU가 이미 다른 VM(A, B)을 처리 중이라 VM3은 계속 대기한다.
- 이 “실행 가능하지만 Running이 되지 못한 시간”이 Steal이다.
6. AWS·클라우드 환경에서 Steal이 자주 발생하는 이유
AWS는 기본적으로 다중 사용자가 공유하는 멀티테넌트 구조다.
같은 물리 호스트에 배치된 다른 고객 VM의 부하가 내 VM에 영향을 줄 수 있다.
클라우드에서 흔한 원인
- Host Contention
같은 호스트에 배치된 VM들이 동시에 고부하일 때 발생한다. - T 시리즈 인스턴스의 CPU Credit 구조
Standard Mode에서는 크레딧 부족 시 CPU가 제한되어 Steal이 늘어날 수 있다.
Unlimited Mode에서는 성능 제한 대신 추가 과금이 발생한다. - 스팟 인스턴스의 경쟁 환경
- Oversubscription 비율이 높은 저가형 인스턴스 패밀리
AWS에서 Steal이 높을 때의 기본 대응
- Restart가 아닌 Stop → Start로 다른 호스트로 재배치
- Burstable(T 계열)이라면 Credit 상태 확인
- Compute Optimized(C5/C6/C7) 계열로 이전
- Dedicated Instance / Dedicated Host 고려
7. 온프레미스 KVM / VMware / Proxmox 환경에서의 Steal 원인
가상화 환경은 모두 vCPU oversubscription의 영향을 받지만,
VMware는 Steal이라는 용어 대신 CPU Ready Time으로 표현된다.
Guest OS에서는 Steal로 보이고, vSphere 콘솔에서는 Ready로 보인다.
주요 원인
- vCPU oversubscription 비율 과다
- noisy-neighbor VM 존재
- NUMA 정책 무시
- CPU pinning 충돌
- 하이퍼바이저의 내부 프로세스 부하
즉각적인 해결책
- 범인이 되는 VM을 다른 호스트로 migration
- vCPU 할당 줄이기 또는 pCPU 늘리기
- NUMA alignment 재조정
- CPU pinning 제거 또는 재설정
- 특정 VM 고부하 분리
8. Steal CPU 문제 진단 흐름

9. 결론
Steal CPU는 단순한 숫자가 아니라 하이퍼바이저가 보내는 경고다.
물리 CPU 여유가 없거나, vCPU 배치가 잘못되었거나,
같은 호스트의 다른 VM이 리소스를 잡아먹고 있다는 뜻이다.
컨테이너에서의 CPU Throttle, AWS T 시리즈의 모드 차이,
VMware에서의 Ready Time 같은 요소를 함께 이해하면
Steal 문제를 훨씬 정확하게 파악할 수 있다.
문제의 원리는 단순하지만,
하이퍼바이저·VM·컨테이너·클라우드가 뒤엉키는 현실 환경에서는
이 구조를 이해하는 것이 성능 문제 해결의 핵심이 된다.
🛠 마지막 수정일: 2025.12.12
ⓒ 2025 엉뚱한 녀석의 블로그 [quirky guy's Blog]. All rights reserved. Unauthorized copying or redistribution of the text and images is prohibited. When sharing, please include the original source link.
💡 도움이 필요하신가요?
Zabbix, Kubernetes, 그리고 다양한 오픈소스 인프라 환경에 대한 구축, 운영, 최적화, 장애 분석,
광고 및 협업 제안이 필요하다면 언제든 편하게 연락 주세요.
📧 Contact: jikimy75@gmail.com
💼 Service: 구축 대행 | 성능 튜닝 | 장애 분석 컨설팅
📖 E-BooK [PDF] 전자책 (Gumroad):
Zabbix 엔터프라이즈 최적화 핸드북
블로그에서 다룬 Zabbix 관련 글들을 기반으로 실무 중심의 지침서로 재구성했습니다.
운영 환경에서 바로 적용할 수 있는 최적화·트러블슈팅 노하우까지 모두 포함되어 있습니다.
💡 Need Professional Support?
If you need deployment, optimization, or troubleshooting support for Zabbix, Kubernetes,
or any other open-source infrastructure in your production environment, or if you are interested in
sponsorships, ads, or technical collaboration, feel free to contact me anytime.
📧 Email: jikimy75@gmail.com
💼 Services: Deployment Support | Performance Tuning | Incident Analysis Consulting
📖 PDF eBook (Gumroad):
Zabbix Enterprise Optimization Handbook
A single, production-ready PDF that compiles my in-depth Zabbix and Kubernetes monitoring guides.
답글 남기기
댓글을 달기 위해서는 로그인해야합니다.