한국어English日本語简体中文繁體中文DeutschไทยTiếng ViệtРусскийPortuguês (Brasil)EspañolBahasa Indonesia

게임 렉 백서 › L7 서버 OS (커널)

CPU 스틸 (가상 머신) CPU steal time

원인 ID so-steal · 주 담당 인프라팀·서버 인프라 · 함께 외부·외부

그림과 실험이 있는 원본 카드로 열기 →

물리 서버(하이퍼바이저)가 가상 머신의 CPU 시간을 잠시 다른 가상 머신에 넘기는 동안(CPU 스틸) 게임 서버가 멈춥니다.

왜 같은 호스트의 다른 가상 머신이 CPU를 많이 씀 → 그러면 내 가상 머신이 수 ms~수십 ms씩 실행 기회를 잃음 → 화면에서는 원인 모를 틱 시간 급증으로 뚝뚝 끊김·멈춤

증상
뚝뚝 끊김, 멈춤
요인
정체
누가 겪나
서버 전체
언제
가끔 무작위로
담당
주 담당 인프라팀·서버 인프라 · 함께 외부·외부
인프라팀 할 일
steal 지표(top·vmstat의 st) 모니터링, 전용 코어·호스트, CPU 크레딧이 바닥나면 느려지는 버스트형 인스턴스 피하기, steal이 계속 높은 인스턴스는 중지 후 다시 시작해 다른 호스트로 옮기기.
외부 할 일
클라우드 사업자에 steal이 계속 높은 호스트 신고.
그래프에서는
가끔 무작위로 튐 · %steal, 서버 틱 시간
확인할 곳
mpstat -P ALL 1의 %steal을 서버 틱 시간과 같은 시간축에 놓고 봄
이러면 맞음
틱이 튄 시각에 %steal이 함께 튀고 중지 후 다시 시작해 다른 호스트로 옮기면 줄어듦
이러면 아님
%steal이 0에 가까운데 틱이 튀면 게임 서버 안쪽 원인(“서버 GC 전체 멈춤”, “락 경합”). 컨테이너면 “컨테이너 CPU 스로틀링 (CFS 쿼터)”
확인 수단
인프라 도구로 확인(게임 코드 불필요)

출처

  1. proc_stat(5) — Linux manual page Linux man-pages
    steal: 가상화 환경에서 다른 운영체제가 실행되느라 빼앗긴 시간
  2. Standard mode for burstable performance instances AWS
    버스트형 인스턴스는 크레딧을 써서 기준 성능을 넘고 크레딧이 떨어지면 CPU 사용률이 기준 수준으로 낮아짐
  3. How EC2 instance stop and start works AWS
    인스턴스를 중지했다 시작하면 대부분 새 호스트로 옮겨짐
  4. mpstat(1) — Linux manual page sysstat
    %steal: 하이퍼바이저가 다른 가상 CPU를 돌리는 동안 이 가상 CPU가 어쩔 수 없이 기다린 시간 비율

함께 보면 좋은 원인

같은 층: L7 서버 OS (커널)

같은 증상(뚝뚝 끊김)의 다른 층 원인

그림과 실험이 있는 원본 카드 보기