CPU 사용량 모니터링
중요:
Citrix Hypervisor 8.2 누적 업데이트 1은 2025년 6월 25일에 수명이 종료됩니다. 원활한 전환과 지속적인 지원을 위해 지금 XenServer 8로의 업그레이드를 계획하십시오. 자세한 내용은 업그레이드.
Citrix Virtual Apps and Desktops 라이센스 파일을 사용하여 Citrix Hypervisor 8.2 누적 업데이트 1 호스트에 라이센스를 부여하는 경우 이러한 라이센스 파일은 XenServer 8과 호환되지 않습니다. 업그레이드하기 전에 XenServer 8에서 사용할 XenServer Premium Edition 소켓 라이센스 파일을 얻어야 합니다. 이러한 소켓 라이센스 파일은 Citrix 워크로드를 실행하기 위한 Citrix for Private Cloud, Citrix Universal Hybrid Multi-Cloud, Citrix Universal MSP 및 Citrix Platform License 구독의 자격으로 사용할 수 있습니다. 아직 이러한 새로운 서브스크립션으로 전환하지 않은 Citrix 고객은 XenServer Premium Edition 소켓 라이센스 10,000개에 대한 무료 프로모션에 참여를 요청할 수 있습니다. 자세한 내용은 XenServer 서버.
업그레이드하기 전에 XenServer 8에 대한 호환 라이센스를 얻지 못한 경우 호스트를 업그레이드할 때 90일 평가판으로 되돌아갑니다. 평가판은 Premium Edition과 동일한 기능을 제공하지만 몇 가지 제한 사항이 있습니다. 자세한 내용은 XenServer 8 라이센스 개요.
호스트의 pCPU당 최적의 vCPU 수는 사용 사례에 따라 다릅니다. 작동 중에는 Citrix Hypervisor 환경의 성능을 모니터링하고 그에 따라 구성을 조정해야 합니다.
용어
이 영역에는 때때로 상호 교환적으로 사용되는 다양한 용어가 있습니다. 이 문서에서는 다음과 같은 용어와 의미를 사용합니다.
- CPU(물리적 CPU): 프로세서 소켓에 연결된 물리적 하드웨어입니다.
- 심: 하나의 독립적인 실행 스레드를 수행할 수 있는 물리적 처리 장치로, 해당 실행을 지원하는 데 필요한 모든 기능 단위를 포함합니다.
- 하이퍼스레드: 하나의 독립적인 실행 스레드를 수행할 수 있는 물리적 처리 장치로, 일부 기능 단위를 다른 하이퍼스레드(“형제 스레드”라고도 함)와 공유합니다.
- 논리 CPU(pCPU): 레지스터 집합과 명령 포인터를 포함하는 독립적인 실행 스레드를 수행할 수 있는 단위입니다. 하이퍼스레드를 사용할 수 있는 시스템에서는 하이퍼스레드입니다. 다른 경우에는 코어입니다.
- 호스트 pCPU: 호스트에 있는 총 논리적 CPU 수입니다.
- vCPU(가상 CPU): 가상화된 논리 CPU입니다. 이는 VM에 제공되는 독립적인 실행 스레드를 사용할 수 있는 논리 단위입니다. Citrix Hypervisor에서 vCPU는 스케줄러를 사용하여 지정된 시간에 어떤 pCPU에서 어떤 vCPU가 실행되고 있는지 확인하여 pCPU를 “시간 공유”할 수 있습니다.
- 게스트 vCPU: VM 내의 게스트 운영 체제에 제공되는 vCPU입니다.
- Dom0 vCPU: Citrix Hypervisor 제어 도메인 (dom0) 에 표시되는 vCPU입니다.
- 호스트 총 vCPU 수: 호스트에 있는 dom0 vCPU와 모든 게스트 vCPU의 합계입니다.
일반적인 동작
호스트의 총 vCPU 수는 dom0에서 사용하는 vCPU 수를 호스트의 모든 VM에 할당된 총 vCPU 수에 더한 값입니다. 호스트의 vCPU 수를 늘리면 다음과 같은 유형의 동작이 발생할 수 있습니다.
-
호스트의 총 vCPU 수가 작거나 같음 호스트의 pCPU 수인 경우 호스트는 항상 VM에서 요청하는 만큼의 CPU를 제공합니다.
-
호스트의 총 vCPU 수가 보다 큼 호스트의 pCPU 수, 호스트는 호스트 pCPU의 시간을 VM과 공유합니다. 이 동작은 일반적으로 VM의 vCPU가 일정 시간 동안 유휴 상태이고 대부분의 경우 호스트가 100% pCPU 사용량에 도달하지 않기 때문에 VM에 영향을 주지 않습니다.
-
호스트의 총 vCPU 수가 보다 큼 호스트와 호스트의 pCPU 수는 다음과 같습니다. 때때로 호스트 pCPU 사용량이 100%에 도달하면 VM의 vCPU는 급증 중에 요청한 만큼의 pCPU를 받지 못합니다. 대신, 이러한 급증 중에는 호스트에서 사용 가능한 pCPU의 공유를 받기 위해 VM 속도가 느려집니다.
-
호스트의 총 vCPU 수가 보다 큼 호스트와 호스트의 pCPU 수는 다음과 같습니다. 자주 호스트 pCPU 사용량이 100%에 도달하면 호스트에서 사용 가능한 CPU의 공유를 받기 위해 VM의 vCPU가 지속적으로 느려집니다. VM에 실시간 요구 사항이 있는 경우 이 상황은 이상적이지 않으며 호스트의 vCPU 수를 줄여 해결할 수 있습니다.
호스트의 최적 vCPU 수는 특히 VM에 실시간 요구 사항이 있는 경우 VM 속도에 대한 VM 사용자의 인식에 따라 달라질 수 있습니다.
CPU에 대한 정보 가져오기
호스트의 총 pCPU 수를 찾으려면 다음 명령을 실행합니다.
xe host-cpu-info --minimal
현재 호스트에 있는 총 vCPU(guest 및 dom0) 수를 찾으려면 다음 명령을 실행합니다.
xl vcpu-list | grep -v VCPU | wc -l
RRD 메트릭으로 CPU 사용량 모니터링
Citrix Hypervisor는 VM의 vCPU가 어떻게 작동하는지 설명하는 RRD 메트릭을 제공합니다.
호스트 pCPU 사용량이 100%인 경우
호스트가 호스트 pCPU 사용량의 100%에 도달하는 경우 다음 VM 메트릭을 사용하여 VM을 다른 호스트로 이동할지 여부를 결정합니다.
실행 상태_동시성_위험
-
runstate_concurrency_hazard > 0% 경우에 따라 하나 이상의 다른 vCPU가 실행 중이지만 pCPU 시간을 가져올 수 없는 동안 하나 이상의 vCPU가 실행 중임을 나타냅니다. vCPU를 조정해야 하는 경우 이 동작으로 인해 성능 문제가 발생합니다.
-
runstate_concurrency_hazard 100%에 가까워지고 있습니다. 피해야 할 상황입니다.
제안된 작업:
성능 문제가 있는 경우 다음 작업 중 하나를 수행합니다.
- VM의 vCPU 수를 줄입니다.
- VM을 다른 호스트로 이동합니다.
- 다른 VM을 마이그레이션하거나 해당 vCPU 수를 줄여 호스트의 총 vCPU 수를 줄입니다.
실행 상태 부분적 경합
-
runstate_partial_contention > 0% 는 하나 이상의 vCPU가 실행하려고 하지만 pCPU 시간을 가져올 수 없음을 나타내며, 하나 이상의 다른 vCPU가 차단되었음을 나타냅니다(수행할 작업이 없거나 I/O가 완료되기를 기다리고 있기 때문에).
-
runstate_concurrency_hazard 100%에 가까워지고 있습니다. 피해야 할 상황입니다.
권장 조치:
백엔드 I/O 스토리지 서버가 오버로드되었는지 여부는 스토리지 공급업체에서 제공하는 백엔드 메트릭을 확인하여 확인합니다. 스토리지 서버가 오버로드되지 않고 성능 문제가 있는 경우 다음 조치 중 하나를 수행하십시오.
- VM의 vCPU 수를 줄입니다.
- VM을 다른 호스트로 이동합니다.
- 다른 VM을 마이그레이션하거나 해당 vCPU 수를 줄여 호스트의 총 vCPU 수를 줄입니다.
실행 상태_전체_내용
-
runstate_full_contention > 0% 때때로 vCPU가 동시에 모두 실행되기를 원하지만 아무도 pCPU 시간을 가져올 수 없음을 나타냅니다.
-
runstate_full_contention 100%에 근접 피해야 할 상황입니다.
제안된 작업:
성능 문제가 있는 경우 다음 작업 중 하나를 수행합니다.
- VM의 vCPU 수를 줄입니다.
- VM을 다른 호스트로 이동합니다.
- 다른 VM을 마이그레이션하거나 해당 vCPU 수를 줄여 호스트의 총 vCPU 수를 줄입니다.
호스트 pCPU 사용량이 100% 미만인 경우
호스트가 호스트 pCPU 사용량의 100%에 도달하지 않는 경우 다음 VM 메트릭을 사용하여 VM에 올바른 수의 vCPU가 있는지 확인합니다.
실행 상태_전체 실행
-
runstate_fullrun = 0% 은 vCPU가 동시에 모두 사용되지 않음을 나타냅니다.
권장 조치:
이 VM의 vCPU 수를 줄입니다.
-
0% < runstate_fullrun < 100% 은 vCPU가 때때로 동시에 사용되고 있음을 나타냅니다.
-
runstate_fullrun = 100% 은 vCPU가 항상 동시에 사용되고 있음을 나타냅니다.
권장 조치:
이 VM의 vCPU 수를 runstate_fullrun까지 늘릴 수 있습니다. < 100%. vCPU 수를 더 늘리지 마십시오. 그렇지 않으면 호스트가 pCPU 사용량의 100%에 도달할 경우 동시성 위험이 발생할 가능성이 높아질 수 있습니다.
실행 상태 부분 실행
-
runstate_partial_run = 0% 모든 vCPU가 항상 사용되고 있거나(full-run=100%) vCPU가 사용되지 않음(idle=100%)을 나타냅니다.
-
0% < runstate_partial_run < 100% 할 일이 없거나 I/O가 완료되기를 기다리고 있기 때문에 하나 이상의 vCPU가 차단되는 경우가 있음을 나타냅니다.
-
runstate_partial_run=100% 항상 하나 이상의 vCPU가 차단되어 있음을 나타냅니다.
권장 조치:
백엔드 I/O 스토리지 서버가 오버로드되었는지 확인합니다. 그렇지 않은 경우 VM에 vCPU가 너무 많을 수 있으므로 이 VM의 vCPU 수를 줄일 수 있습니다. VM에 vCPU가 너무 많으면 호스트 CPU 사용량이 100%에 도달할 때 VM이 동시성 위험 상태로 전환될 위험이 증가할 수 있습니다.