ESXi에서는 정교한 NUMA 스케줄러를 사용하여 프로세서 로드와 메모리 인접성의 균형을 동적으로 조정하거나 동적 프로세서 로드 밸런싱을 수행합니다.
- NUMA 스케줄러에서 관리하는 각 가상 시스템에는 홈 노드가 할당됩니다. 홈 노드는 SRAT(시스템 리소스 할당 테이블)에 표시된 것과 같이 프로세서 및 로컬 메모리를 포함하는 시스템의 NUMA 노드 중 하나입니다.
- 가상 시스템에 메모리를 할당할 때 ESXi 호스트는 홈 노드의 메모리를 우선적으로 할당합니다. 메모리 인접성을 최대화하기 위해 가상 시스템의 가상 CPU는 홈 노드에서만 실행할 수 있습니다.
- NUMA 스케줄러는 시스템 로드의 변화에 따라 가상 시스템의 홈 노드를 동적으로 변경할 수 있습니다. 프로세서 로드 불균형을 줄이기 위해 가상 시스템을 새 홈 노드로 마이그레이션할 수도 있습니다. 이 경우 원격 메모리가 많아지므로 스케줄러에서는 가상 시스템의 메모리를 새 홈 노드로 동적으로 마이그레이션하여 메모리 인접성을 높일 수 있습니다. NUMA 스케줄러에서는 전체 메모리 인접성을 높이는 데 도움이 될 경우 가상 시스템을 노드 간에 스왑할 수도 있습니다.
일부 가상 시스템은 ESXi NUMA 스케줄러에서 관리되지 않습니다. 예를 들어 가상 시스템의 프로세서 또는 메모리 선호도를 수동으로 설정한 경우에는 NUMA 스케줄러에서 이 가상 시스템을 관리할 수 없습니다. NUMA 스케줄러에서 관리되지 않는 가상 시스템도 올바르게 실행됩니다. 그러나 ESXi NUMA 최적화의 이점을 누릴 수는 없습니다.
ESXi의 NUMA 스케줄링 및 메모리 배치 정책은 모든 가상 시스템을 투명하게 관리할 수 있으므로 관리자가 노드 간에 가상 시스템의 균형을 조정하는 복잡한 작업을 명시적으로 처리할 필요가 없습니다.
최적화는 게스트 운영 체제의 종류에 관계없이 원활하게 작동합니다. ESXi에서는 Windows NT 4.0과 같이 NUMA 하드웨어를 지원하지 않는 가상 시스템에도 NUMA 지원을 제공합니다. 따라서 레거시 운영 체제를 사용하는 경우에도 새 하드웨어를 활용할 수 있습니다.
단일 하드웨어 노드에서 사용할 수 있는 물리적 프로세서 코어보다 많은 수의 가상 프로세서가 있는 가상 시스템은 자동으로 관리할 수 있습니다. NUMA 스케줄러에서는 이러한 가상 시스템을 NUMA 노드에 분산하여 수용합니다. 즉, 가상 시스템을 여러 개의 NUMA 클라이언트로 분할하여 각각 하나의 노드에 할당하며, 분할된 각 클라이언트를 분할되지 않은 정상적인 클라이언트와 같이 관리합니다. 이렇게 하면 메모리 소모가 많은 일부 워크로드의 성능을 향상하면서 인접성을 높일 수 있습니다. 이 기능의 동작을 구성하는 방법은 고급 가상 시스템 특성을 참조하십시오.
ESXi 5.0 이상에서는 게스트 운영 체제에 가상 NUMA 토폴로지를 노출하기 위한 지원이 포함됩니다. 가상 NUMA 제어에 대한 자세한 내용은 가상 NUMA 사용을 참조하십시오.