Mengelola jenis penjadwal hypervisor Hyper-V
Artikel ini menjelaskan mode baru logika penjadwalan prosesor virtual yang 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:
- Pilih jenis penjadwal hypervisor yang paling cocok untuk komputer virtual tamu (VM).
- Konfigurasikan VM untuk memanfaatkan logika penjadwalan.
Prasyarat
Anda harus menginstal pembaruan berikut untuk menggunakan fitur penjadwal hypervisor yang dijelaskan nanti di artikel ini. Pembaruan ini mencakup perubahan untuk mendukung opsi BCD baru hypervisorschedulertype
, yang diperlukan untuk konfigurasi host.
Versi | Lepaskan | 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 | Tidak |
Latar belakang
Sebelum membahas logika dan kontrol di balik penjadwalan prosesor virtual Hyper-V, penting untuk memahami konsep tertentu seperti multithreading simultan dan cara Hyper-V memvirtualisasikan prosesor.
Memahami SMT
Simultaneous multithreading (SMT) adalah teknik dalam desain prosesor modern yang memungkinkan utas eksekusi independen terpisah berbagi sumber daya prosesor. SMT biasanya memberikan peningkatan performa sederhana ke sebagian besar beban kerja. Ini menyejajarkan komputasi jika memungkinkan, meningkatkan throughput instruksi. Namun, ada juga saat-saat di mana tidak ada peningkatan performa yang nyata atau bahkan sedikit kehilangan ketika utas bersaing satu sama lain untuk sumber daya prosesor bersama.
Untuk menggunakan SMT dengan Windows Server, Anda harus memiliki prosesor yang kompatibel. Misalnya, prosesor dengan teknologi Intel Hyper-Threading atau Advanced Micro Devices (AMD) Multithreading (SMT).
Untuk tujuan 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, Anda harus memahami arsitektur Hyper-V. Anda dapat menemukan ringkasan yang lebih rinci tentang cara kerja arsitektur ini dalam gambaran umum Hyper-V, tetapi untuk saat ini, Anda harus mengingat konsep berikut:
Hyper-V membuat dan mengelola partisi VM, mengalokasikan dan berbagi sumber daya komputasi di seluruhnya, di bawah kendali hypervisor. Partisi menyediakan batas isolasi yang kuat antara semua VM tamu dan antara VM tamu dan partisi akar.
Partisi akar itu sendiri adalah partisi VM, meskipun memiliki properti unik dan hak istimewa yang lebih besar daripada VM tamu. Partisi akar:
- Menyediakan layanan manajemen yang mengontrol semua VM tamu.
- Menyediakan dukungan perangkat virtual untuk tamu.
- Mengelola semua input dan output perangkat untuk VM tamu.
Sebaiknya jangan menjalankan beban kerja aplikasi apa pun di partisi akar.
Setiap prosesor virtual (VP) partisi akar dipetakan satu-ke-satu 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 yang menghosting VP partisi akar juga dapat menjalankan VP tamu.
Hypervisor mungkin menjadwalkan VP tamu untuk berjalan pada prosesor logis yang tersedia. Sementara penjadwal hypervisor mencoba mempertimbangkan lokalitas cache temporal, topologi akses memori non-seragam (NUMA), dan banyak faktor lain saat menjadwalkan VP tamu, pada akhirnya VP dapat dijadwalkan pada LP host apa pun.
Jenis penjadwal hypervisor
Di 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 Windows Hyper-V sejak awal, termasuk Windows Server 2016 Hyper-V. Penjadwal klasik menyediakan model penjadwalan round-robin yang adil, preemptive, untuk prosesor virtual tamu.
Jenis penjadwal klasik adalah yang paling tepat untuk sebagian besar penggunaan Hyper-V tradisional, seperti cloud privat, penyedia hosting, dan sebagainya. Karakteristik performa jenis penjadwal klasik paling baik dioptimalkan untuk mendukung berbagai skenario virtualisasi, seperti:
- Berlangganan VP ke IP secara berlebihan.
- Menjalankan banyak VM dan beban kerja heterogen secara bersamaan.
- Menjalankan VM berkinerja tinggi skala yang lebih besar.
- Mendukung set fitur lengkap Hyper-V tanpa batasan dan skenario lainnya.
Penjadwal inti
Penjadwal inti hypervisor adalah alternatif 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. Ini juga mengurangi varianbilitas performa untuk beban kerja di dalam VM yang berjalan pada host virtualisasi berkemampuan SMT. Penjadwal inti mendukung menjalankan komputer virtual SMT dan non-SMT secara bersamaan pada host virtualisasi berkemampuan SMT yang sama.
Penjadwal inti:
- Menggunakan topologi SMT host virtualisasi.
- Secara opsional mengekspos pasangan SMT ke VM tamu.
- Menjadwalkan grup prosesor virtual tamu dari VM yang sama ke grup prosesor logis SMT.
Pekerjaan ini terjadi secara simetris. Jika IP berada dalam grup dua, VP dijadwalkan dalam grup dua, dan inti tidak pernah dibagikan antara VM. Ketika Anda menjadwalkan VP untuk VM tanpa SMT diaktifkan, VP tersebut mengonsumsi seluruh inti saat berjalan. Hasil keseluruhan dari penjadwal inti adalah bahwa:
- Ini menciptakan batas keamanan yang kuat ada untuk isolasi beban kerja tamu. VP Tamu hanya dapat berjalan pada pasangan inti fisik yang mendasarinya, mengurangi kerentanan terhadap serangan pengintaian saluran samping.
- Ini mengurangi varianbilitas dalam throughput.
- Hal ini berpotensi mengurangi performa. Jika hanya satu VP dalam grup yang dapat berjalan, hanya salah satu aliran instruksi dalam peluncuran inti sementara yang lain dibiarkan menganggur.
- OS dan aplikasi yang berjalan di VM tamu dapat menggunakan perilaku SMT dan antarmuka pemrograman (API) untuk mengontrol dan mendistribusikan pekerjaan di seluruh utas SMT, seperti yang mereka lakukan dengan komputer fisik.
Pada Windows Server 2019, Hyper-V menggunakan penjadwal inti secara default. Dalam versi sebelumnya seperti Windows Server 2016, penjadwal bersifat opsional dan penjadwal klasik adalah opsi default.
Perilaku penjadwal inti dengan host SMT dinonaktifkan
Dalam beberapa kasus, Anda mungkin mengonfigurasi hypervisor untuk menggunakan jenis penjadwal inti, tetapi kemampuan SMT dinonaktifkan atau tidak ada di host virtualisasi. Dalam kasus ini, Hyper-V menggunakan perilaku penjadwal klasik terlepas dari pengaturan jenis penjadwal hypervisor.
Penjadwal akar
Penjadwal akar tiba dengan Windows 10, versi 1803. Saat Anda mengaktifkan jenis penjadwal akar, hypervisor memberikan kontrol partisi akar penjadwalan kerja. Penjadwal NT dalam instans OS partisi akar mengelola semua aspek penjadwalan bekerja ke IP sistem.
Penjadwal akar membahas persyaratan unik untuk mendukung partisi utilitas dan menyediakan isolasi beban kerja yang kuat, seperti yang digunakan dengan Windows Defender Application Guard (WDAG). Dalam skenario ini, meninggalkan tanggung jawab penjadwalan ke OS akar menawarkan beberapa keuntungan:
- Anda dapat menggunakan kontrol sumber daya CPU yang berlaku untuk skenario kontainer dengan partisi utilitas, menyederhanakan manajemen dan penyebaran.
- Penjadwal OS akar dapat dengan mudah mengumpulkan metrik tentang penggunaan CPU beban kerja di dalam kontainer. Ini dapat 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 pekerjaan atribut yang dilakukan dalam kontainer aplikasi ke sistem host. Melacak metrik ini lebih sulit dengan beban kerja VM tradisional, di mana beberapa pekerjaan atas nama semua VM yang berjalan terjadi di partisi root.
Penggunaan penjadwal akar pada sistem klien
Dimulai dengan Windows 10, versi 1803, penjadwal akar digunakan secara default hanya pada sistem klien, yang berarti:
- Anda dapat mengaktifkan hypervisor untuk mendukung keamanan berbasis virtualisasi dan isolasi beban kerja WDAG.
- Penting untuk mengoperasikan sistem masa depan dengan benar dengan arsitektur inti heterogen.
Konfigurasi 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.
Kontrol sumber daya CPU Komputer Virtual dan penjadwal akar
Kontrol sumber daya prosesor VM yang disediakan Hyper-V tidak didukung saat Anda mengaktifkan penjadwal akar hypervisor. Logika penjadwal sistem operasi root mengelola sumber daya host secara global dan tidak mengelola satu sumber daya tamu VM. Kontrol sumber daya prosesor Hyper-V per VM, seperti batas, bobot, dan cadangan, hanya dapat berlaku di mana hypervisor secara langsung mengontrol penjadwalan VP, seperti dengan jenis penjadwal klasik dan inti.
Penggunaan penjadwal akar pada sistem server
Kami tidak merekomendasikan penggunaan penjadwal akar dengan Hyper-V di server. Karakteristik performanya belum sepenuhnya ditandai dan disetel untuk mengakomodasi berbagai beban kerja yang khas dari banyak penyebaran virtualisasi server.
Mengaktifkan SMT di VM tamu
Setelah mengonfigurasi hypervisor host virtualisasi untuk menggunakan jenis penjadwal inti, Anda juga dapat mengonfigurasi VM tamu untuk menggunakan SMT. Mengekspos fakta bahwa VP dihiperthread ke VM tamu memungkinkan penjadwal dalam sistem operasi tamu dan beban kerja yang berjalan di VM mendeteksi dan menggunakan topologi SMT dalam penjadwalan kerja mereka sendiri.
- Di Windows Server 2016, SMT tamu tidak dikonfigurasi secara default. Administrator host Hyper-V harus mengaktifkannya secara eksplisit.
- Dimulai dengan Windows Server 2019, VM baru yang Anda buat pada host mewarisi topologi SMT host secara default. Misalnya, VM versi 9.0 yang Anda buat pada host dengan dua utas SMT per inti juga akan memiliki dua utas SMT per inti.
Anda harus menggunakan PowerShell untuk mengaktifkan SMT di VM tamu. Tidak ada antarmuka pengguna yang disediakan di Hyper-V Manager. Untuk mengaktifkan SMT di VM tamu:
- Buka jendela PowerShell menggunakan akun yang merupakan anggota grup Administrator Hyper-V, atau yang setara.
- Jalankan
Set-VMProcessor -VMName <VMName> -HwThreadCountPerCore <n>
, di mana<n>
adalah jumlah utas SMT per inti yang dilihat VM tamu.<n> = 0
mengatur nilai agar sesuai dengan jumlah utasHwThreadCountPerCore
SMT host per nilai inti.
Catatan
Di Windows Server 2019 dan yang lebih baru, Anda dapat mengatur HwThreadCountPerCore = 0
alih-alih mencocokkan jumlah utas SMT host.
Cuplikan layar berikut menunjukkan informasi sistem yang diambil dari sistem operasi tamu yang berjalan di VM. Ada dua prosesor virtual dan SMT diaktifkan. Sistem operasi tamu mendeteksi dua 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. Anda dapat secara opsional mengonfigurasi hypervisor untuk menggunakan penjadwal inti. Penjadwal inti meningkatkan keamanan dengan membatasi VP tamu untuk dijalankan pada pasangan SMT fisik yang sesuai. Konfigurasi ini mendukung penggunaan VM dengan penjadwalan SMT untuk VP tamu mereka.
Catatan
Kami 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.
Default Windows Server 2019 Hyper-V untuk menggunakan penjadwal inti
Untuk memastikan host Hyper-V disebarkan dalam konfigurasi keamanan optimal, Windows Server 2019 Hyper-V sekarang menggunakan model penjadwal hypervisor inti secara default. Administrator host mungkin secara opsional mengonfigurasi host untuk menggunakan penjadwal klasik warisan. Sebelum mengesampingkan pengaturan default, administrator harus membaca, memahami, dan mempertimbangkan dampak yang dialami setiap jenis penjadwal terhadap keamanan dan performa host virtualisasi dengan cermat. Untuk informasi selengkapnya, lihat Tentang pilihan jenis penjadwal hypervisor Hyper-V.
Pilih jenis penjadwal hypervisor di Windows Server
Konfigurasi penjadwal hypervisor dikontrol oleh hypervisorschedulertype
entri BCD.
Untuk memilih jenis penjadwal:
- Buka perintah dengan hak istimewa admin.
- Masukkan
bcdedit /set hypervisorschedulertype type
, di manatype
salah satu opsi ini:
Classic
Core
Root
Anda harus me-reboot sistem untuk setiap perubahan yang Anda buat pada jenis penjadwal hypervisor agar berlaku.
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 mana yang saat ini digunakan Hyper-V dengan memeriksa log sistem Pemantau Peristiwa. Anda dapat melihat ID peristiwa peluncuran hypervisor terbaru 2, yang melaporkan jenis penjadwal hypervisor yang dikonfigurasi pada peluncuran hypervisor. Anda bisa mendapatkan peristiwa peluncuran hypervisor dari Windows Pemantau Peristiwa atau di 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 root
Mengkueri peristiwa peluncuran jenis penjadwal hyper-V hypervisor menggunakan PowerShell
Untuk mengkueri ID peristiwa hypervisor 2 menggunakan PowerShell, jalankan perintah berikut dari prompt PowerShell:
Get-WinEvent -FilterHashTable @{ProviderName="Microsoft-Windows-Hyper-V-Hypervisor"; ID=2} -MaxEvents 1