Mengelola jenis penjadwal hypervisor Hyper-V
Berlaku untuk: Windows Server 2022, Windows 10, Windows Server 2016, Windows Server, versi 1709, Windows Server, versi 1803, Windows Server 2019
Artikel ini menjelaskan mode baru logika penjadwalan prosesor virtual yang pertama kali diperkenalkan di Windows Server 2016. Mode ini, atau jenis penjadwal, menentukan bagaimana hypervisor Hyper-V mengalokasikan dan mengelola pekerjaan di seluruh prosesor virtual tamu. Administrator host Hyper-V dapat memilih jenis penjadwal hypervisor yang paling cocok untuk komputer virtual tamu (VM) dan mengonfigurasi VM untuk memanfaatkan logika penjadwalan.
Catatan
Pembaruan diperlukan untuk menggunakan fitur penjadwal hypervisor yang dijelaskan dalam dokumen ini. Untuk detailnya, lihat Pembaruan yang diperlukan.
Background
Sebelum membahas logika dan kontrol di balik penjadwalan prosesor virtual Hyper-V, sangat membantu untuk meninjau konsep dasar yang tercakup dalam artikel ini.
Memahami SMT
Multithreading simultan, atau SMT, adalah teknik yang digunakan dalam desain prosesor modern yang memungkinkan sumber daya prosesor dibagikan dengan utas eksekusi independen yang terpisah. SMT umumnya menawarkan peningkatan performa sederhana ke sebagian besar beban kerja dengan menyejajarkan komputasi jika memungkinkan, meningkatkan throughput instruksi, meskipun tidak ada perolehan performa atau bahkan sedikit kehilangan performa yang dapat terjadi ketika perselisihan antara utas untuk sumber daya prosesor bersama terjadi. Prosesor yang mendukung SMT tersedia dari Intel dan AMD. Intel mengacu pada penawaran SMT mereka sebagai Intel Hyper Threading Technology, atau Intel HT.
Untuk keperluan artikel ini, deskripsi SMT dan cara penggunaannya oleh Hyper-V berlaku sama untuk sistem Intel dan AMD.
Untuk informasi selengkapnya tentang Intel HT Technology, lihat Intel Hyper-Threading Technology
Untuk informasi selengkapnya tentang AMD SMT, lihat Arsitektur Inti "Zen"
Memahami bagaimana Hyper-V memvirtualisasi prosesor
Sebelum mempertimbangkan jenis penjadwal hypervisor, sangat membantu untuk memahami arsitektur Hyper-V. Anda dapat menemukan ringkasan umum dalam Gambaran Umum Teknologi Hyper-V. Ini adalah konsep penting untuk artikel ini:
Hyper-V membuat dan mengelola partisi komputer virtual, di mana sumber daya komputasi dialokasikan dan dibagikan, di bawah kendali hypervisor. Partisi menyediakan batas isolasi yang kuat antara semua komputer virtual tamu, dan antara VM tamu dan partisi akar.
Partisi akar itu sendiri adalah partisi komputer virtual, meskipun memiliki properti unik dan hak istimewa yang jauh lebih besar daripada komputer virtual tamu. Partisi root menyediakan layanan manajemen yang mengontrol semua komputer virtual tamu, menyediakan dukungan perangkat virtual untuk tamu, dan mengelola semua I/O perangkat untuk komputer virtual tamu. Microsoft sangat menyarankan untuk tidak menjalankan beban kerja aplikasi apa pun di partisi akar.
Setiap prosesor virtual (VP) dari partisi akar dipetakan 1:1 ke prosesor logis (LP) yang mendasar. VP host selalu berjalan pada LP yang mendasari yang sama - tidak ada migrasi VP partisi akar.
Secara default, IP tempat VP host berjalan juga dapat menjalankan VP tamu.
VP tamu dapat dijadwalkan oleh hypervisor untuk berjalan pada prosesor logis yang tersedia. Sementara penjadwal hypervisor berhati-hati untuk mempertimbangkan lokalitas cache temporal, topologi NUMA, dan banyak faktor lain saat menjadwalkan VP tamu, pada akhirnya VP dapat dijadwalkan pada LP host apa pun.
Jenis penjadwal hypervisor
Dimulai dengan Windows Server 2016, hypervisor Hyper-V mendukung beberapa mode logika penjadwal, yang menentukan bagaimana hypervisor menjadwalkan prosesor virtual pada prosesor logis yang mendasar. Jenis penjadwal ini adalah:
Penjadwal klasik
Penjadwal klasik telah menjadi default untuk semua versi hypervisor Hyper-V Windows sejak awal, termasuk Windows Server 2016 Hyper-V. Penjadwal klasik menyediakan model penjadwalan round-robin yang adil dan preemptive untuk prosesor virtual tamu.
Jenis penjadwal klasik adalah yang paling tepat untuk sebagian besar penggunaan Hyper-V tradisional - untuk cloud privat, penyedia hosting, dan sebagainya. Karakteristik performa dipahami dengan baik dan paling baik dioptimalkan untuk mendukung berbagai skenario virtualisasi, seperti langganan berlebihan VP ke IP, menjalankan banyak VM dan beban kerja heterogen secara bersamaan, menjalankan VM performa tinggi skala yang lebih besar, mendukung set fitur lengkap Hyper-V tanpa batasan, dan banyak lagi.
Penjadwal inti
Penjadwal inti hypervisor adalah alternatif baru untuk logika penjadwal klasik, yang diperkenalkan di Windows Server 2016 dan Windows 10 versi 1607. Penjadwal inti menawarkan batas keamanan yang kuat untuk isolasi beban kerja tamu, dan mengurangi varianbilitas performa untuk beban kerja di dalam VM yang berjalan pada host virtualisasi yang mendukung SMT. Penjadwal inti memungkinkan menjalankan komputer virtual SMT dan non-SMT secara bersamaan pada host virtualisasi berkemampuan SMT yang sama.
Penjadwal inti menggunakan topologi SMT host virtualisasi, dan secara opsional mengekspos pasangan SMT ke komputer virtual tamu, dan menjadwalkan grup prosesor virtual tamu dari komputer virtual yang sama ke grup prosesor logis SMT. Ini dilakukan secara simetris sehingga jika IP berada dalam grup dua, VP dijadwalkan dalam grup yang terdiri dari dua, dan inti tidak pernah dibagikan di antara VM. Ketika VP dijadwalkan untuk komputer virtual tanpa SMT diaktifkan, VP tersebut mengonsumsi seluruh inti saat berjalan.
Hasil keseluruhan penjadwal inti adalah bahwa:
VP tamu dibatasi untuk berjalan pada pasangan inti fisik yang mendasarinya, mengisolasi VM ke batas inti prosesor, sehingga mengurangi kerentanan terhadap serangan pengintaian saluran samping dari VM berbahaya.
Varianabilitas dalam throughput berkurang secara signifikan.
Performa berpotensi berkurang, karena jika hanya salah satu grup VP yang dapat berjalan, hanya salah satu aliran instruksi dalam inti yang dijalankan sementara yang lain dibiarkan menganggur.
OS dan aplikasi yang berjalan di komputer virtual tamu dapat menggunakan perilaku SMT dan antarmuka pemrograman (API) untuk mengontrol dan mendistribusikan pekerjaan di seluruh utas SMT, seperti yang mereka lakukan saat menjalankan non-virtual.
Batas keamanan yang kuat untuk isolasi beban kerja tamu - VP Tamu dibatasi untuk berjalan pada pasangan inti fisik yang mendasarinya, mengurangi kerentanan terhadap serangan pengintaian saluran samping.
Penjadwal inti digunakan secara default mulai Windows Server 2019. Pada Windows Server 2016, penjadwal inti bersifat opsional dan harus diaktifkan secara eksplisit oleh administrator host Hyper-V, dan penjadwal klasik adalah default.
Perilaku penjadwal inti dengan host SMT dinonaktifkan
Jika hypervisor dikonfigurasi untuk menggunakan jenis penjadwal inti tetapi kemampuan SMT dinonaktifkan atau tidak ada pada host virtualisasi, maka hypervisor menggunakan perilaku penjadwal klasik, terlepas dari pengaturan jenis penjadwal hypervisor.
Penjadwal akar
Penjadwal akar diperkenalkan dengan Windows 10 versi 1803. Ketika jenis penjadwal akar diaktifkan, hypervisor menghentikan kontrol penjadwalan kerja ke partisi akar. Penjadwal NT dalam instans OS partisi akar mengelola semua aspek penjadwalan yang berfungsi untuk IP sistem.
Penjadwal akar membahas persyaratan unik yang melekat dengan mendukung partisi utilitas untuk memberikan isolasi beban kerja yang kuat, seperti yang digunakan dengan Application Guard Pertahanan Windows (WDAG). Dalam skenario ini, meninggalkan tanggung jawab penjadwalan ke OS akar menawarkan beberapa keuntungan. Misalnya, kontrol sumber daya CPU yang berlaku untuk skenario kontainer dapat digunakan dengan partisi utilitas, menyederhanakan manajemen dan penyebaran. Selain itu, penjadwal OS akar dapat dengan mudah mengumpulkan metrik tentang pemanfaatan CPU beban kerja di dalam kontainer dan menggunakan data ini sebagai input ke kebijakan penjadwalan yang sama yang berlaku untuk semua beban kerja lain dalam sistem. Metrik yang sama ini juga membantu mengaitkan pekerjaan dengan jelas yang dilakukan dalam kontainer aplikasi ke sistem host. Melacak metrik ini lebih sulit dengan beban kerja komputer virtual tradisional, di mana beberapa pekerjaan atas semua nama VM yang berjalan berlangsung di partisi akar.
Penggunaan penjadwal akar pada sistem klien
Dimulai dengan Windows 10 versi 1803, penjadwal akar digunakan secara default hanya pada sistem klien, di mana hypervisor dapat diaktifkan untuk mendukung keamanan berbasis virtualisasi dan isolasi beban kerja WDAG, dan untuk pengoperasian sistem masa depan yang tepat dengan arsitektur inti heterogen. Ini adalah satu-satunya konfigurasi penjadwal hypervisor yang didukung untuk sistem klien. Administrator tidak boleh mencoba mengambil alih jenis penjadwal hypervisor default pada sistem klien Windows 10.
Kontrol sumber daya CPU Komputer Virtual dan penjadwal akar
Kontrol sumber daya prosesor komputer virtual yang disediakan oleh Hyper-V tidak didukung ketika penjadwal akar hypervisor diaktifkan karena logika penjadwal sistem operasi root mengelola sumber daya host secara global dan tidak memiliki pengetahuan tentang pengaturan konfigurasi khusus VM. Kontrol sumber daya prosesor Hyper-V per VM, seperti batas, bobot, dan cadangan, hanya berlaku di mana hypervisor secara langsung mengontrol penjadwalan VP, seperti dengan jenis penjadwal klasik dan inti.
Penggunaan penjadwal akar pada sistem server
Penjadwal akar tidak disarankan untuk digunakan dengan Hyper-V pada server saat ini, karena karakteristik performanya belum sepenuhnya ditandai dan disetel untuk mengakomodasi berbagai beban kerja yang khas dari banyak penyebaran virtualisasi server.
Mengaktifkan SMT di komputer virtual tamu
Setelah hypervisor host virtualisasi dikonfigurasi untuk menggunakan jenis penjadwal inti, komputer virtual tamu dapat dikonfigurasi untuk menggunakan SMT jika diinginkan. Mengekspos fakta bahwa VP dihiperthread ke komputer virtual tamu memungkinkan penjadwal dalam sistem operasi tamu dan beban kerja yang berjalan di VM untuk mendeteksi dan menggunakan topologi SMT dalam penjadwalan pekerjaan mereka sendiri. Pada Windows Server 2016, SMT tamu tidak dikonfigurasi secara default dan harus diaktifkan secara eksplisit oleh administrator host Hyper-V. Dimulai dengan Windows Server 2019, VM baru yang dibuat pada host mewarisi topologi SMT host secara default. Artinya, VM versi 9.0 yang dibuat pada host dengan 2 utas SMT per inti juga akan melihat 2 utas SMT per inti.
PowerShell harus digunakan untuk mengaktifkan SMT di komputer virtual tamu; tidak ada antarmuka pengguna yang disediakan di Hyper-V Manager. Untuk mengaktifkan SMT di komputer virtual tamu, buka jendela PowerShell dengan izin yang memadai, dan ketik:
Set-VMProcessor -VMName <VMName> -HwThreadCountPerCore <n>
Di mana <n> adalah jumlah utas SMT per inti yang dilihat VM tamu. Perhatikan bahwa <n> = 0 menetapkan nilai HwThreadCountPerCore agar sesuai dengan jumlah utas SMT host per nilai inti.
Catatan
Pengaturan HwThreadCountPerCore = 0 didukung dimulai dengan Windows Server 2019.
Di bawah ini adalah contoh Informasi Sistem yang diambil dari sistem operasi tamu yang berjalan di komputer virtual dengan 2 prosesor virtual dan SMT diaktifkan. Sistem operasi tamu mendeteksi 2 prosesor logis milik inti yang sama.

Mengonfigurasi jenis penjadwal hypervisor pada Windows Server 2016 Hyper-V
Windows Server 2016 Hyper-V menggunakan model penjadwal hypervisor klasik secara default. Hypervisor dapat dikonfigurasi secara opsional untuk menggunakan penjadwal inti, untuk meningkatkan keamanan dengan membatasi VP tamu untuk berjalan pada pasangan SMT fisik yang sesuai, dan untuk mendukung penggunaan komputer virtual dengan penjadwalan SMT untuk VP tamu mereka.
Catatan
Microsoft menyarankan agar semua pelanggan yang menjalankan Windows Server 2016 Hyper-V memilih penjadwal inti untuk memastikan host virtualisasi mereka dilindungi secara optimal terhadap VM tamu yang berpotensi berbahaya.
Windows Server 2019 Hyper-V default menggunakan penjadwal inti
Untuk membantu memastikan host Hyper-V disebarkan dalam konfigurasi keamanan optimal, Windows Server 2019 Hyper-V sekarang menggunakan model penjadwal hypervisor inti secara default. Administrator host dapat secara opsional mengonfigurasi host untuk menggunakan penjadwal klasik warisan. Administrator harus membaca, memahami, dan mempertimbangkan dampak yang dialami setiap jenis penjadwal dengan cermat terhadap keamanan dan performa host virtualisasi sebelum mengesampingkan pengaturan default jenis penjadwal. Lihat Tentang pemilihan jenis penjadwal hypervisor Hyper-V untuk informasi selengkapnya.
Pembaruan yang diperlukan
Catatan
Pembaruan berikut diperlukan untuk menggunakan fitur penjadwal hypervisor yang dijelaskan dalam dokumen ini. Pembaruan ini mencakup perubahan untuk mendukung opsi BCD baru hypervisorschedulertype , yang diperlukan untuk konfigurasi host.
| Versi | Rilis | Pembaruan Diperlukan | Artikel KB |
|---|---|---|---|
| Server Windows 2016 | 1607 | 2018.07 C | KB4338822 |
| Server Windows 2016 | 1703 | 2018.07 C | KB4338827 |
| Server Windows 2016 | 1709 | 2018.07 C | KB4338817 |
| Server Windows 2019 | 1804 | Tidak ada | Tidak ada |
Memilih jenis penjadwal hypervisor di Windows Server
Konfigurasi penjadwal hypervisor dikontrol melalui entri BCD hypervisorschedulertype.
Untuk memilih jenis penjadwal, buka prompt perintah dengan hak istimewa administrator:
bcdedit /set hypervisorschedulertype type
Di mana type adalah salah satu dari:
- Classic
- Core
- Root
Sistem harus di-boot ulang agar perubahan apa pun pada jenis penjadwal hypervisor diterapkan.
Catatan
Penjadwal akar hypervisor tidak didukung pada Windows Server Hyper-V saat ini. Administrator Hyper-V tidak boleh mencoba mengonfigurasi penjadwal akar untuk digunakan dengan skenario virtualisasi server.
Menentukan jenis penjadwal saat ini
Anda dapat menentukan jenis penjadwal hypervisor saat ini yang digunakan dengan memeriksa log Sistem Pemantau Peristiwa untuk ID peristiwa peluncuran hypervisor terbaru 2, yang melaporkan jenis penjadwal hypervisor yang dikonfigurasi saat peluncuran hypervisor. Peristiwa peluncuran Hypervisor dapat diperoleh dari Windows Pemantau Peristiwa, atau melalui PowerShell.
ID peristiwa peluncuran Hypervisor 2 menunjukkan jenis penjadwal hypervisor, di mana:
1 = Penjadwal klasik, SMT dinonaktifkan
2 = Penjadwal klasik
3 = Penjadwal inti
4 = Penjadwal akar


Mengkueri peristiwa peluncuran jenis penjadwal hypervisor Hyper-V menggunakan PowerShell
Untuk mengkueri ID peristiwa hypervisor 2 menggunakan PowerShell, masukkan perintah berikut dari prompt PowerShell.
Get-WinEvent -FilterHashTable @{ProviderName="Microsoft-Windows-Hyper-V-Hypervisor"; ID=2} -MaxEvents 1
