Search

Hyper-V CPU 스케줄러

요약
bcdedit /set HypervisorSchedulerType core && Set-VMProcessor -VMName VM_NAME -HwThreadCountPerCore 2
게시일
2023/02/27
태그
Windows
1 more property
좋은 세상이다. bing에서 AI 검색을 해주니 아주 편하게 원하는 정보를 찾을 수 있었다. 그러니까 이건 검색한 내용의 기록인 셈이다.
Hyper-V에 게스트를 설치한 후 CPU 스케줄러가 세팅되어 있지 않다고 경고 메시지가 있길래 Hyper-V 스케줄러를 설정해야 했다. 그래서 찾아보니,
편한 세상이다. 그냥 AI에게 물어보면 다 나와…
SMT가 보안취약점을 유발할 수 있다고 하니 안전한 VM을 사용하려면 core를 선택하는게 좋겠다. CPU 스케줄러는 bcdedit 명령으로 변경할 수 있다. bcdedit는 말 그대로 부트 설정 데이터(boot configuration data)를 편집할 수 있게 해주는 명령어다.
1.
관리자 권한으로 다음 명령을 실행한다.
bcdedit /set HypervisorSchedulerType core
PowerShell
복사
2.
파워셸 명령어 Set-VMProcessor로 VM의 코어당 하드웨어 스레드 수를 지정한다. 나의 가상머신 이름은 rocky.
Set-VMProcessor -VMName rocky -HwThreadCountPerCore 2
PowerShell
복사
이 명령어를 실행하기 전에 VM을 종료해야 변경할 수 있다.
3.
변경된 CPU 스케줄러 설정을 적용하려면 Windows를 재시작한다.
변경된 내용을 확인해보려면,
1.
CPU 스케줄러 타입을 확인해본다.
Get-WinEvent -FilterHashTable @{ProviderName="Microsoft-Windows-Hyper-V-Hypervisor"; ID=2} -MaxEvents 1
PowerShell
복사
출력:
ProviderName: Microsoft-Windows-Hyper-V-Hypervisor TimeCreated Id LevelDisplayName Message ----------- -- ---------------- ------- 2023-02-26 PM 3:43:16 2 Information Hypervisor scheduler type is 0x3.
PowerShell
복사
0x1: 클래식 스케줄러. SMT 비활성화됨
0x2: 클래식 스케줄러
0x3: 코어 스케줄러
0x4: 루트 스케줄러
2.
VM에 적용된 코어당 하드웨어 스레드를 확인해본다.
Get-VMProcessor -VMName rocky | Select-Object HwThreadCountPerCore
PowerShell
복사
출력:
HwThreadCountPerCore -------------------- 2
PowerShell
복사