9.3.2. NUMA vCPU 고정
vCPU 고정은 베어 메탈 시스템의 작업 고정과 유사한 이점을 제공합니다. vCPU는 호스트 운영 체제에서 사용자 공간 작업으로 실행되므로 캐시 효율성이 향상됩니다. 한 가지 예는 모든 vCPU 스레드가 동일한 물리적 소켓에서 실행 중인 환경이므로 L3 캐시 도메인을 공유합니다.
참고
Red Hat Enterprise Linux 버전 7.0~ 7.2에서는 활성 vCPU를 고정할 수 있습니다. 그러나 Red Hat Enterprise Linux 7.3에서는 비활성 vCPU를 고정할 수도 있습니다.
vCPU 고정을 numatune 과 결합하면 NUMA 누락을 방지할 수 있습니다. NUMA 누락의 성능에 미치는 영향은 일반적으로 10% 이상의 성능 히트에서 시작합니다. vCPU 고정 및 numatune 을 함께 구성해야 합니다.
가상 시스템이 스토리지 또는 네트워크 I/O 작업을 수행하는 경우 모든 vCPU 및 메모리를 I/O 어댑터에 물리적으로 연결된 동일한 물리적 소켓에 고정하는 것이 유용할 수 있습니다.
참고
lstopo 툴을 사용하여 NUMA 토폴로지를 시각화할 수 있습니다. 또한 vCPU가 동일한 물리적 소켓의 코어에 바인딩되어 있는지 확인하는 데 도움이 될 수 있습니다. lstopo:https://access.redhat.com/site/solutions/62879 에 대한 자세한 내용은 다음 지식 베이스 문서를 참조하십시오.
중요
고정은 물리 코어보다 많은 vCPU가 있는 경우 복잡성이 향상되었습니다.
다음 예제 XML 구성에는 물리 CPU 0-7에 고정된 도메인 프로세스가 있습니다. vCPU 스레드는 자체 cpuset에 고정됩니다. 예를 들어 vCPU0은 물리 CPU 0, vCPU1이 물리적 CPU 1에 고정되어 있습니다.
<vcpu cpuset='0-7'>8</vcpu> <cputune> <vcpupin vcpu='0' cpuset='0'/> <vcpupin vcpu='1' cpuset='1'/> <vcpupin vcpu='2' cpuset='2'/> <vcpupin vcpu='3' cpuset='3'/> <vcpupin vcpu='4' cpuset='4'/> <vcpupin vcpu='5' cpuset='5'/> <vcpupin vcpu='6' cpuset='6'/> <vcpupin vcpu='7' cpuset='7'/> </cputune>
vcpu와 vcpupin 태그 간에 직접적인 관계가 있습니다. vcpupin 옵션을 지정하지 않으면 값이 자동으로 결정되고 상위 vcpu 태그 옵션에서 상속됩니다. 다음 구성에서는 vcpu 5 누락에 대한
<vcpupin>
을 보여줍니다. 따라서 상위 태그 <vcpu>
에 지정된 대로 vCPU5 가 물리적 CPU 0-7에 고정됩니다.
<vcpu cpuset='0-7'>8</vcpu> <cputune> <vcpupin vcpu='0' cpuset='0'/> <vcpupin vcpu='1' cpuset='1'/> <vcpupin vcpu='2' cpuset='2'/> <vcpupin vcpu='3' cpuset='3'/> <vcpupin vcpu='4' cpuset='4'/> <vcpupin vcpu='6' cpuset='6'/> <vcpupin vcpu='7' cpuset='7'/> </cputune>
중요
<vcpupin>
, <numatune>
, <emulatorpin>
은 최적의 결정적 성능을 발휘하려면 함께 구성해야 합니다. <numatune>
태그에 대한 자세한 내용은 9.3.3절. “도메인 프로세스” 를 참조하십시오. <emulatorpin>
태그에 대한 자세한 내용은 9.3.6절. “emulatorpin 사용” 를 참조하십시오.