14장. 가상 머신 성능 최적화
VM(가상 시스템)은 항상 호스트와 비교하여 일정 수준의 성능 저하를 경험합니다. 다음 섹션에서는 이러한 문제가 발생하는 이유를 설명하고, 하드웨어 인프라 리소스를 최대한 효율적으로 사용할 수 있도록 RHEL 8의 가상화 성능 영향을 최소화하는 방법에 대한 지침을 제공합니다.
14.1. 가상 머신 성능에 어떤 영향을 주는가
VM은 호스트에서 사용자 공간 프로세스로 실행됩니다. 따라서 하이퍼바이저는 VM에서 사용할 수 있도록 호스트의 시스템 리소스를 변환해야 합니다. 결과적으로 변환에서 리소스의 일부를 소비하므로 VM은 호스트와 동일한 성능 효율성을 달성할 수 없습니다.
시스템 성능에 가상화가 미치는 영향
VM 성능 손실의 구체적인 이유는 다음과 같습니다.
- 가상 CPU(vCPU)는 Linux 스케줄러에서 처리하는 호스트의 스레드로 구현됩니다.
- VM은 호스트 커널에서 NUMA 또는 대규모 페이지와 같은 최적화 기능을 자동으로 상속하지 않습니다.
- 호스트의 디스크 및 네트워크 I/O 설정은 VM에 상당한 성능 영향을 줄 수 있습니다.
- 네트워크 트래픽은 일반적으로 소프트웨어 기반 브릿지를 통해 VM으로 이동합니다.
- 호스트 장치 및 해당 모델에 따라 특정 하드웨어의 에뮬레이션으로 인해 상당한 오버헤드가 발생할 수 있습니다.
VM 성능에 대한 가상화 영향의 심각도는 다음과 같은 다양한 요인의 영향을 받습니다.
- 동시에 실행 중인 VM 수입니다.
- 각 VM에서 사용하는 가상 장치의 양입니다.
- VM에서 사용하는 장치 유형입니다.
VM 성능 손실 감소
RHEL 8에서는 가상화의 부정적인 성능 효과를 줄이는 데 사용할 수 있는 여러 가지 기능을 제공합니다. 특히:
-
TuneD
서비스는 VM의 리소스 배포 및 성능을 자동으로 최적화할 수 있습니다. - 블록 I/O 튜닝을 사용하면 디스크와 같은 VM 블록 장치의 성능을 향상시킬 수 있습니다.
- NUMA 튜닝 은 vCPU 성능을 향상시킬 수 있습니다.
- 가상 네트워킹 을 다양한 방식으로 최적화할 수 있습니다.
VM 성능 튜닝은 다른 가상화 기능에 부정적인 영향을 미칠 수 있습니다. 예를 들어 수정된 VM을 마이그레이션하기가 더 어려워질 수 있습니다.