17.6. 가상 머신 CPU 성능 최적화

호스트 시스템의 물리적 CPU와 마찬가지로 vCPU는 VM(가상 머신) 성능에 매우 중요합니다. 따라서 vCPU를 최적화하면 VM의 리소스 효율성에 큰 영향을 미칠 수 있습니다. vCPU를 최적화하려면 다음을 수행합니다.

  1. VM에 할당되는 호스트 CPU 수를 조정합니다. CLI 또는 웹 콘솔 을 사용하여 이 작업을 수행할 수 있습니다.
  2. vCPU 모델이 호스트의 CPU 모델과 일치하는지 확인합니다. 예를 들어 호스트의 CPU 모델을 사용하도록 testguest1 VM을 설정하려면 다음을 수행합니다.

    # virt-xml testguest1 --edit --cpu host-model
  3. 커널 동일 페이지 병합(KSM)을 관리합니다.
  4. 호스트 시스템에서 NUMA(Non-Uniform Memory Access)를 사용하는 경우 해당 VM에 대해 NUMA를 구성할 수도 있습니다. 이는 호스트의 CPU 및 메모리 프로세스를 VM의 CPU 및 메모리 프로세스에 가능한 한 가깝게 매핑합니다. 실제로 NUMA 튜닝에서는 VM에 할당된 시스템 메모리에 보다 효율적으로 액세스할 수 있는 vCPU를 제공하므로 vCPU 처리 효율성을 향상시킬 수 있습니다.

    자세한 내용은 가상 머신에서 NUMA 구성샘플 vCPU 성능 튜닝 시나리오를 참조하십시오.

17.6.1. 명령줄 인터페이스를 사용하여 가상 CPU 추가 및 제거

VM(가상 머신)의 CPU 성능을 늘리거나 최적화하기 위해 VM에 할당된 가상 CPU(vCPU)를 추가하거나 제거할 수 있습니다.

실행 중인 VM에서 수행할 때 vCPU 핫 플러그 및 핫플러그라고도 합니다. 그러나 vCPU 핫 언플러그는 RHEL 9에서 지원되지 않으며 Red Hat은 사용이 좋지 않습니다.

사전 요구 사항

  • 선택 사항: 대상 VM에서 vCPU의 현재 상태를 확인합니다. 예를 들어 testguest VM에 vCPU 수를 표시하려면 다음을 수행합니다.

    # virsh vcpucount testguest
    maximum      config         4
    maximum      live           2
    current      config         2
    current      live           1

    이 출력은 testguest 가 현재 1 vCPU를 사용하고 있으며 VM 성능을 높이기 위해 1개 이상의 vCPu를 핫 플러그로 연결할 수 있음을 나타냅니다. 그러나 재부팅 후 vCPU 테스트 게스트 수가 2로 변경되며 2개의 vCPU를 더 핫플러그할 수 있습니다.

절차

  1. VM에 연결할 수 있는 최대 vCPU 수를 조정합니다. VM의 다음 부팅에 적용됩니다.

    예를 들어 testguest VM의 최대 vCPU 수를 8로 늘리려면 다음을 수행합니다.

    # virsh setvcpus testguest 8 --maximum --config

    CPU 토폴로지, 호스트 하드웨어, 하이퍼바이저 및 기타 요인에 따라 최대값을 제한할 수 있습니다.

  2. VM에 연결된 현재 vCPU 수를 이전 단계에서 구성한 최대값까지 조정합니다. 예를 들면 다음과 같습니다.

    • 실행 중인 testguest VM에 연결된 vCPU 수를 4로 늘리려면 다음을 실행합니다.

      # virsh setvcpus testguest 4 --live

      이로 인해 VM의 다음 부팅이 될 때까지 testguest 의 VM 성능 및 호스트 로드 공간이 증가합니다.

    • testguest VM에 연결된 vCPU 수를 1로 영구적으로 축소하려면 다음을 수행합니다.

      # virsh setvcpus testguest 1 --config

      이렇게 하면 VM의 다음 부팅 후 testguest 의 VM 성능 및 호스트 로드 공간이 줄어듭니다. 그러나 필요한 경우 VM에 추가 vCPU를 핫플러그하여 일시적으로 성능을 향상시킬 수 있습니다.

검증

  • VM의 현재 vCPU 상태가 변경 사항을 반영하는지 확인합니다.

    # virsh vcpucount testguest
    maximum      config         8
    maximum      live           4
    current      config         1
    current      live           4