Hyper-V 프로세서 성능
가상화 서버는 서로 격리되어 있지만 기본 하드웨어 리소스를 공유하는 여러 VM(Virtual Machines)을 호스팅합니다. 프로세서, 메모리 및 I/O 디바이스는 가상화됩니다. 서버를 단일 머신에 통합하면 가상화를 통해 리소스 사용률 및 에너지 효율을 높이고 서버의 운영 및 유지 관리 비용을 줄일 수 있습니다. 이 문서는 Hyper-V 성능을 튜닝하고 개선하기 위한 프로세서 성능 고려 사항을 이해하는 데 도움이 됩니다.
가상 머신 통합 서비스
VM(Virtual Machine) 통합 서비스에는 에뮬레이트된 디바이스에 비해 I/O에 대한 CPU 오버헤드를 크게 줄이는 Hyper-V 특정 I/O 디바이스에 대한 인식 드라이버가 포함됩니다. 지원되는 모든 VM에 최신 버전의 VM 통합 서비스를 설치합니다. 이 서비스는 유휴 게스트에서 사용량이 많은 게스트에 이르기까지 게스트의 CPU 사용량을 줄이고 I/O 처리량을 향상시킵니다. 이 단계는 Hyper-V를 실행하는 서버에서 성능을 조정하는 첫 번째 단계입니다. 지원되는 게스트 운영 체제 목록은 Hyper-V 개요를 참조하세요.
가상 프로세서
CPU를 많이 사용하지 않는 로드가 있는 VM은 하나의 가상 프로세서만 사용하도록 구성해야 합니다. 이 구성은 게스트 운영 체제의 다른 동기화 비용과 같은 여러 가상 프로세서와 관련된 추가 오버헤드 때문에 필요합니다. Hyper-V에서 구성 가능한 최대 구성 요소에 대한 자세한 내용은 Windows Server의 Hyper-V 확장성 계획을 참조하세요.
VM에 최대 부하 상태에서 둘 이상의 CPU 처리가 필요한 경우 가상 프로세서 수를 늘립니다.
백그라운드 작업
유휴 VM에서 백그라운드 작업을 최소화하면 다른 VM에서 사용하는 CPU 주기가 해제됩니다. Windows 게스트는 일반적으로 유휴 상태일 때 CPU의 1% 미만을 사용합니다. 다음은 VM의 백그라운드 CPU 사용량을 최소화하는 모범 사례입니다.
최신 버전의 VM 통합 서비스를 설치합니다.
VM 설정 대화 상자를 통해 에뮬레이트된 네트워크 어댑터를 제거합니다(Microsoft Hyper-V 관련 어댑터 사용).
CD-ROM 및 COM 포트와 같은 사용되지 않는 디바이스를 제거하거나 미디어 연결을 끊습니다.
Windows 게스트 운영 체제가 사용되지 않는 경우 로그인 화면에 유지하고 화면 보호기를 사용하지 않도록 설정합니다.
기본적으로 사용하도록 설정된 예약된 작업 및 서비스를 검토합니다.
logman.exe query -ets
을(를) 실행하여 기본적으로 켜진 ETW(Event Tracing for Windows) 추적 공급자를 검토합니다.주기적 작업(예: 타이머)을 줄이기 위해 서버 애플리케이션을 개선합니다.
호스트 및 게스트 운영 체제 모두에서 서버 관리자를 닫습니다.
Hyper-V 관리자가 VM의 썸네일을 지속적으로 새로 고치므로 실행 중인 상태로 두지 마세요.
다음은 전체 CPU 사용량을 줄이기 위해 VM에서 Windows의 클라이언트 버전을 구성하는 모범 사례입니다.
SuperFetch 및 Windows Search와 같은 백그라운드 서비스를 사용하지 않도록 설정합니다.
예약된 조각 모음과 같은 예약된 작업을 사용하지 않도록 설정합니다.
가상 NUMA
Windows Server의 Hyper-V는 VM 확장 제한을 확장하여 대규모 스케일 업 워크로드를 가상화할 수 있도록 합니다. 큰 VM을 만들 때 호스트 시스템의 여러 NUMA 노드에서 메모리가 일반적으로 사용됩니다. 해당 유형의 VM 구성에서 동일한 NUMA 노드에서 가상 프로세서 및 메모리를 할당하지 않으면 워크로드의 성능이 저하될 수 있습니다. 워크로드가 NUMA 최적화를 활용할 수 없기 때문에 성능은 부정적인 영향을 받습니다. Hyper-V에서 구성 가능한 최대 구성 요소에 대한 자세한 내용은 Windows Server의 Hyper-V 확장성 계획을 참조하세요.
Windows Server에서 Hyper-V는 VM에 가상 NUMA 토폴로지입니다. 기본적으로 이 가상 NUMA 토폴로지는 기본 호스트 컴퓨터의 NUMA 토폴로지와 일치하도록 최적화됩니다. 가상 NUMA 토폴로지를 VM에 노출하면 게스트 운영 체제와 이 운영 체제 내에서 실행되는 모든 NUMA 인식 애플리케이션이 실제 컴퓨터에서 실행될 때와 마찬가지로 NUMA 성능 최적화를 활용할 수 있습니다.
워크로드의 관점에서는 가상 NUMA와 실제 NUMA가 구별되지 않습니다. VM 내에서 워크로드가 데이터에 로컬 메모리를 할당하고 동일한 NUMA 노드에서 해당 데이터에 액세스할 경우 기본 실제 시스템에서 신속한 로컬 메모리 액세스가 발생합니다. 원격 메모리 액세스로 인해 성능 저하가 방지됩니다. NUMA 인식 애플리케이션만 vNUMA를 활용할 수 있습니다.
Microsoft SQL Server는 NUMA 인식 애플리케이션의 예입니다. 자세한 내용은 불균일 메모리 액세스 이해를 참조하세요.
가상 NUMA와 동적 메모리 기능은 동시에 사용할 수 없습니다. 동적 메모리가 활성화된 VM에는 가상 NUMA 노드가 하나만 있습니다. 또한 가상 NUMA 설정에 관계없이 VM에 NUMA 토폴로지는 표시되지 않습니다.
가상 NUMA에 대한 자세한 내용은 Hyper-V 가상 NUMA 개요를 참조하세요.
관련 링크
Hyper-V에 대해 자세히 알아보는 데 도움이 되는 몇 가지 문서는 다음과 같습니다.