Hyper-V dan Hyper-threading: Hidup atau mati?

23

Dengan CPU Xeon baru yang mendukung Hyper-threading, apa kebijakan saat ini sehubungan dengan menggunakannya (atau tidak) pada mesin host Hyper-V?

Saya awalnya di bawah kesan bahwa menyalakannya di lingkungan host virtual dapat merusak karena CPU 'ekstra' bukan core sebenarnya. Namun saya juga sudah membaca (belum dikonfirmasi) komentar di sepanjang MS melakukan kerja keras untuk mendapatkan Hyper-V berjalan dengan baik di lingkungan Hyper-threading.

Apakah ada yang punya informasi atau pengalaman yang solid dalam hal ini? Tepuk tangan!

CapBBeard
sumber

Jawaban:

5

Masalah lama dengan Hyper-Threading di Virtual Server 2005, tanpa terlalu teknis, adalah cache CPU diracuni, yaitu cache hampir tidak ada karena konteks apa yang terjadi pada setiap thread tidak terkait - menyebabkan mereka bersaing untuk cache on-chip.

Chip yang lebih baru memiliki cache yang lebih besar dan lebih cerdas sehingga ini bukan masalah.

Apakah ideal untuk hidup atau mati? Itu sangat tergantung pada beban kerja. Jika kedua utas kebetulan menjalankan VM yang sama dan tugas yang sama, maka hampir pasti akan menjadi keuntungan BESAR untuk dimiliki. Jika mereka melakukan hal-hal yang tidak terkait dengan banyak RAM I / O acak (beberapa VM berbeda misalnya) itu akan menyebabkan hanya setengah cache chip yang tersedia untuk masing-masing - yang secara teori bisa lebih lambat - Pada kenyataannya jarang terjadi lagi.

Jika Anda memiliki chip generasi yang lebih tua, Anda mungkin ingin memeriksa ukuran cache chip: Dalam virtualisasi, cache yang lebih besar Anda bisa mendapatkan yang lebih baik. RAM benar-benar JAUH lebih lambat dari CPU - hanya saja TIDAK DEKAT seburuk disk drive.

CATATAN: Apa yang Anda baca yang mengatakan "matikan" ditemukan mengenai chip yang merupakan single core dengan Hyper-Threading - Misalnya ini adalah jawaban resmi pada hari itu (2005/2006?) - http: //www.VirtualServerFAQ .com / tiki-index.php? page = VirtualServerHostDualCore

Steve Radich http://www.VirtualServerFAQ.com

Steve Radich-BitShop.com
sumber
21

Menurut Windows IT Pro, Anda ingin membiarkannya:

A. Prosesor Intel Core i7 empat inti yang baru memungkinkan hyper-threading, yang membagi setiap inti prosesor menjadi dua inti virtual untuk (berpotensi) meningkatkan kinerja.

Kekhawatiran dengan Hyper-V dan hyper-threading adalah bahwa Anda menetapkan sejumlah inti prosesor untuk setiap mesin virtual (VM). Bayangkan bahwa Anda menetapkan satu prosesor masing-masing ke dua VM tamu dari konsol manajemen Hyper-V, berpikir bahwa masing-masing akan menggunakan inti yang terpisah. Bagaimana jika hypervisor menetapkan masing-masing VM ke inti fisik yang sama, dengan masing-masing mendapatkan inti virtual? Anda berpotensi mendapatkan kinerja yang buruk dan tiga inti fisik tidak melakukan banyak hal, di mana Anda ingin setiap VM mendapatkan inti fisiknya sendiri.

Untungnya, ini bukan masalahnya. Microsoft telah melakukan banyak pekerjaan di sekitar Hyper-Threading dan Hyper-V. Pada dasarnya, sementara Hyper-Threading akan membantu kinerja kadang-kadang, itu tidak akan merugikan kinerja, jadi Hyper-Threading harus diaktifkan.

Sean Earp
sumber
Hmm terima kasih atas jawabannya. Ini mungkin yang saya baca awalnya. Mereka mengatakan untuk membiarkannya, tetapi tampaknya cukup kosong; Saya tidak terlalu yakin. Mungkin hanya aku.
CapBBeard
6

Program yang sadar akan hyperthreading dapat membedakan antara inti fisik dan inti logis (virtual), dan mengalokasikan sumber daya yang sesuai.

Hyperthreading mengurangi biaya pengalihan konteks dengan memungkinkan keadaan dua proses disimpan pada waktu tertentu, bukan hanya satu keadaan pada satu waktu. Pergantian konteks biasanya dianggap sangat mahal, karena Anda harus memuat seluruh keadaan proses ke dalam CPU. Ini berarti bahwa jika Anda menjalankan proses intensif-CPU, CPU yang mengalami hipertensi sering kali dapat beralih di antara proses tersebut dan yang lainnya tanpa menimbulkan banyak peningkatan kinerja.

Keuntungan menjalankan server virtual adalah Anda dapat membuat kumpulan besar sumber daya yang dapat dialokasikan ke berbagai server dengan cepat, sesuai kebutuhan. Ini termasuk realokasi CPU core dan menyeimbangkan beban di semua core yang tersedia. Jika hypervisor tidak tahu perbedaan antara inti fisik dan inti logis, maka Anda benar - beberapa core fisik dapat diam sementara yang lain dipatok pada utilisasi CPU 100% sementara kedua core logis mereka bersaing untuk CPU waktu. Namun, jika hypervisor dapat mengetahui perbedaan antara core fisik dan logis, itu akan mencoba untuk menyeimbangkan beban CPU di seluruh CPU fisik sebelum mengalokasikan beberapa proses ke dua core logis yang memiliki inti fisik yang sama.

rampok
sumber
2

Saya belum mempelajari masalah ini secara detail, tetapi Microsoft tidak merekomendasikan penggunaan hyperthreading dengan Exchange 2010 karena masalah "perencanaan kapasitas dan pemantauan". Anda mungkin ingin menguji beban kerja Anda sendiri sebelum memilih satu konfigurasi atau yang lainnya.

duffbeer703
sumber
-2

Hyperthreading: Wow, prosesor gratis!

Matikan. Sementara implementasi modern multithreading simultan (SMT), juga dikenal sebagai hyperthreading, benar-benar dapat meningkatkan throughput CPU untuk sebagian besar aplikasi, manfaat untuk Exchange 2013 tidak melebihi dampak negatifnya. Ternyata bisa ada dampak yang signifikan terhadap pemanfaatan memori pada server Exchange ketika hiphreading diaktifkan karena cara pengumpul sampah .NET server mengalokasikan banyak. Pengumpul sampah server melihat jumlah total prosesor logis ketika aplikasi dijalankan dan mengalokasikan tumpukan per prosesor logis. Ini berarti bahwa penggunaan memori pada saat startup untuk salah satu layanan kami menggunakan pengumpul sampah server akan hampir dua kali lipat dengan hyperthreading dihidupkan vs. ketika dimatikan. Peningkatan memori yang signifikan ini, bersama dengan analisis peningkatan throughput CPU yang sebenarnya untuk beban kerja Exchange 2013 dalam tes lab internal telah mengarahkan kami pada rekomendasi praktik terbaik bahwa hyperthreading harus dinonaktifkan untuk semua server Exchange 2013. Manfaatnya tidak melebihi dampak negatifnya.

Disalin dari: http://blogs.technet.com/b/exchange/archive/2013/05/06/ask-the-perf-guy-sizing-exchange-2013-deployments.aspx

pengguna226342
sumber
3
Saya bingung; mengapa Anda menyebutkan pertukaran? pertanyaannya adalah tentang dampak ke hyperv. Dan sebenarnya paragraf di bawah disalin melanjutkan dengan mengatakan hyperthreading tidak mempengaruhi server pertukaran tervirtualisasi, jika saya membacanya dengan benar.
Andy