ESXi CPU 고려사항(ESXi CPU Considerations)

이 절에서는 VMware ESXi의 CPU 고려 사항에 대한 지침을 제공한다.

  • CPU 가상화는 물리적 프로세서에서 실행될 수 있는 가상 시스템의 워크로드의 비율과 나머지 워크로드의 가상화 비용에 따라 다양한 오버헤드를 추가한다.
  • 많은 워크로드의 경우 CPU 가상화는 매우 적은 양의 오버헤드만 추가하므로 본질적으로 네이티브에 필적하는 성능을 발휘한다.
  • CPU 가상화가 오버헤드를 추가하는 워크로드의 대부분은 CPU 바인딩이 아니며, 즉 대부분의 시간이 지침을 실행하는 대신 사용자 상호 작용, 장치 입력 또는 데이터 검색과 같은 외부 이벤트를 대기하는 데 소비된다. 그렇지 않으면 사용되지 않는 CPU 사이클이 가상화 오버헤드를 흡수할 수 있기 때문에 이러한 워크로드에는 일반적으로 네이티브와 유사한 처리량이 있지만 잠재적으로 지연 시간이 약간 증가할 수 있다.
  • 적은 비율의 워크로드의 경우, CPU 가상화가 오버헤드를 추가하고 CPU 바인딩된 워크로드의 경우 처리량과 지연 시간이 모두 현저하게 저하될 수 있다.

이 절의 나머지 부분에는 최적의 CPU 성능을 위해 VMware에서 권장하는 사례 및 구성이 나열되어 있다.

  • 대부분의 환경에서 ESXi는 가상 시스템 성능에 영향을 주지 않고 상당한 수준의 CPU 오버 커밋(즉, 해당 호스트의 총 물리적 프로세서 코어 수보다 많은 vCPU를 호스트에서 실행함)을 허용한다.
    ESXi 호스트가 CPU 포화 상태가 되면(즉, 호스트의 가상 시스템 및 기타 로드에 호스트의 모든 CPU 리소스가 필요함), 지연 시간에 민감한 워크로드가 제대로 수행되지 않을 수 있다. 이 경우 예를 들어 일부 가상 시스템의 전원을 끄거나 다른 호스트로 마이그레이션(또는 DRS가 자동으로 마이그레이션하도록 허용)하여 CPU 로드를 줄일 수 있다.
  • 호스트의 CPU 사용량을 주기적으로 모니터링하는 것이 좋다. 이는 vSphere Client를 통해 또는 esxtop 또는 resxtop을 사용하여 수행할 수 있다. 아래에서는 esxtop 데이터를 해석하는 방법을 설명한다.
  • esxtop CPU 패널의 첫 번째 라인의 부하 평균이 1보다 크거나 같을 경우, 이는 시스템이 과부하 상태임을 나타낸다.
  • PCPU 라인의 물리적 CPU 사용률은 과부하 상태의 또 다른 징후일 수 있다. 일반적으로 80%의 사용은 합리적인 한도가 되며 90%는 CPU가 과부하 상태에 도달한다는 경고가 되어야 한다. 그러나 조직은 원하는 부하 비율에 대해 다양한 표준을 가질 것이다.
    esxtop 또는 resxtop 사용에 대한 자세한 내용은 VMware Resource Management Guide Appendix A를 참조하기 바란다.
  • 워크로드에서 사용할 수 있는 것보다 더 많은 가상 CPU(vCPU)로 가상 시스템을 구성하면 리소스 사용량이 약간 증가하여 부하가 매우 높은 시스템의 성능에 영향을 줄 수 있다. 일반적인 예로는 워크로드가 효과적으로 사용할 수 있는 것보다 많은 vCPU를 사용하는 가상 시스템에서 실행되는 단일 스레드 워크로드 또는 다중 스레드 워크로드를 들 수 있다.
    게스트 운영 체제에서 vCPU를 일부 사용하지 않더라도 이러한 vCPU를 사용하여 가상 시스템을 구성하면 ESXi에서 호스트의 실제 CPU 사용으로 변환되는 몇 가지 작은 리소스 요구 사항이 여전히 부과된다. 예를 들면 다음과 같다.
  • 일부 게스트 운영 체제에서는 사용되지 않는 vCPU가 여전히 타이머 인터럽트를 사용한다( "Guest Operating System CPU Considerations"에 설명되어 있는 "tickless timer" 커널에서는 해당되지 않음)
  • 여러 vCPU 간에 일관된 메모리 보기를 유지하면 게스트 운영 체제와 ESXi에서 모두 추가 리소스를 사용할 수 있다.
  • 대부분의 게스트 운영 체제는 비활성 기간 동안 유휴 루프를 실행한다. 이 루프 내에서 대부분의 게스트 운영 체제는 HLT 또는 MWAIT 명령을 실행하여 중단된다. 그러나 일부 구형 게스트 운영 체제(Windows 2000(특정 HAL 포함), Solaris 8 및 9, MS-DOS 등)는 유휴 루프 내에서 사용량이 많은 대기 모드를 사용한다. 이로 인해 다른 용도로 사용할 수 있는 리소스(다른 가상 시스템, VMkernel 등)가 소비된다.
    ESXi는 이러한 루프를 자동으로 감지하고 유휴 vCPU의 스케줄을 해제함 이렇게 하면 CPU 오버헤드가 감소하지만 일부 I/O 헤비 워크로드의 성능도 감소할 수 있다. 자세한 내용은 VMware KB 문서 1077 및 2231을 참조하기 바란다.
  • 게스트 운영 체제의 스케줄러가 단일 스레드 워크로드를 여러 vCPU 간에 마이그레이션하여 캐시 지역성을 잃을 수 있다.
    이러한 리소스 요구 사항은 호스트의 실제 CPU 사용량으로 변환된다.
  • 일부 워크로드는 여러 가상 머신으로 쉽게 분할할 수 있다. 경우에 따라 동일한 수의 vCPU에 대해 더 작은 가상 머신("스케일아웃"이라고도 함)이 더 적은 수의 대형 가상 머신("스케일업"이라고도 함)보다 더 나은 성능을 제공할 수 있다. 다른 경우에는 그 반대가 사실이며, 더 적은 수의 대형 가상 머신이 더 나은 성능을 발휘할 것이다. 이러한 변화는 NUMA 노드 크기, CPU 캐시 지역성 및 워크로드 구현 세부 정보를 포함한 여러 요인에 의해 발생할 수 있다. 최상의 선택은 환경에서 특정 워크로드를 사용한 실험을 통해 결정할 수 있다.

Revision #2
Created Mon, Jan 13, 2020 9:05 PM by ikhwan.koo
Updated Mon, Jan 13, 2020 9:40 PM by ikhwan.koo