Hyper-V และ Hyper-threading: เปิดหรือปิด?


23

ด้วย Xeon CPUs ใหม่ที่รองรับ Hyper-threading ภูมิปัญญาในปัจจุบันของการใช้ (หรือไม่) บนเครื่องโฮสต์ Hyper-V คืออะไร?

เดิมฉันอยู่ภายใต้การแสดงผลที่การเปิดใช้งานในสภาพแวดล้อมโฮสต์เสมือนอาจเป็นอันตรายได้เนื่องจากซีพียู 'พิเศษ' ไม่ใช่คอร์ที่แท้จริง อย่างไรก็ตามฉันได้อ่าน (ยังไม่ยืนยัน) ความคิดเห็นตามแนวของ MS ที่ทำงานหนักเพื่อให้ Hyper-V ทำงานได้ดีในสภาพแวดล้อม Hyper-threading

ไม่มีใครมีข้อมูลที่แข็งแกร่งหรือประสบการณ์ในเรื่องนี้? ไชโย!

คำตอบ:


5

ปัญหาเก่าของ Hyper-Threading ใน Virtual Server 2005 โดยไม่ได้รับความรู้ด้านเทคนิคมากเกินไปคือ CPU cache ถูกวางยาพิษนั่นคือการแคชแทบจะไม่มีอะไรเลยเพราะบริบทของสิ่งที่เกิดขึ้นในแต่ละเธรดนั้นไม่เกี่ยวข้องกัน แคชบนชิป

ชิปรุ่นใหม่นั้นมีแคชที่ใหญ่และฉลาดกว่าดังนั้นจึงเป็นปัญหาน้อยกว่า

มันเหมาะที่จะเปิดหรือปิด? นั่นขึ้นอยู่กับปริมาณงานจริงๆ หากเธรดทั้งสองเกิดขึ้นเพื่อเรียกใช้ VM เดียวกันและงานเดียวกันมันจะเป็นข้อได้เปรียบที่ยิ่งใหญ่อย่างแน่นอน หากพวกเขาทำสิ่งที่ไม่เกี่ยวข้องกับ RAM I / O แบบสุ่มจำนวนมาก (เช่น VM ที่แตกต่างกันหลายตัวอย่าง) มันจะทำให้แคชของชิปเพียงครึ่งเดียวพร้อมใช้งานสำหรับแต่ละคน - ซึ่งในทางทฤษฎีอาจช้าลง - ในความเป็นจริงแล้ว

หากคุณมีชิปรุ่นเก่ากว่าแม้ว่าคุณอาจต้องการตรวจสอบขนาดแคชชิป: ในการจำลองเสมือนแคชที่ใหญ่กว่าคุณจะดีขึ้น หน่วยความจำจะช้ากว่าซีพียูอย่างมาก - ไม่ใกล้เท่าดิสก์ไดรฟ์

หมายเหตุ: สิ่งที่คุณกำลังอ่านที่ระบุว่า "ปิด" พบเกี่ยวกับชิปที่เป็นแกนเดียวกับ Hyper-Threading - ตัวอย่างเช่นนี่เป็นคำตอบอย่างเป็นทางการในวันที่ (2005/2006?) - http: //www.VirtualServerFAQ .com / Tiki-index.php? page = VirtualServerHostDualCore

Steve Radich http://www.VirtualServerFAQ.com


21

ตาม Windows IT Pro คุณต้องการปล่อยไว้:

ตอบโปรเซสเซอร์สี่คอร์ Intel Core i7 ใหม่เปิดใช้งานไฮเปอร์เธรดซึ่งแบ่งแต่ละคอร์โปรเซสเซอร์ออกเป็นสองคอร์เสมือนเพื่อปรับปรุงประสิทธิภาพ (อาจ)

ข้อกังวลกับ Hyper-V และไฮเปอร์เธรดคือคุณกำหนดจำนวนของตัวประมวลผลหลักให้กับแต่ละเครื่องเสมือน (VM) ลองนึกภาพว่าคุณกำหนดหนึ่งตัวประมวลผลแต่ละตัวให้กับ guest VM สองตัวจากคอนโซลการจัดการ Hyper-V โดยคิดว่าตัวประมวลผลแต่ละตัวจะใช้แกนแยกต่างหาก จะเกิดอะไรขึ้นถ้าไฮเปอร์ไวเซอร์กำหนด VM แต่ละตัวให้กับฟิสิคัลคอร์เดียวกันโดยแต่ละอันจะได้รับคอร์เสมือน คุณอาจจะได้รับประสิทธิภาพที่ไม่ดีและแกนประมวลผลทางกายภาพสามแกนที่ไม่ได้ทำอะไรมากนักโดยที่คุณอยากให้ VM แต่ละตัวรับแกนหลักทางกายภาพของตัวเอง

โชคดีที่มันไม่ได้เป็นอย่างนั้น Microsoft ได้ทำงานหลายอย่างเกี่ยวกับ Hyper-Threading และ Hyper-V โดยพื้นฐานแล้วในขณะที่ Hyper-Threading จะช่วยประสิทธิภาพการทำงานในบางครั้ง แต่จะไม่ส่งผลกระทบต่อประสิทธิภาพดังนั้น Hyper-Threading จึงควรเปิดใช้งาน


อืมขอบคุณสำหรับคำตอบ นี่อาจเป็นสิ่งที่ฉันอ่านในตอนแรก พวกเขาบอกว่าจะทิ้งไว้ แต่ดูเหมือนว่าจะว่างเปล่า ฉันไม่มั่นใจเป็นพิเศษ อาจจะเป็นเพียงฉัน
CapBBeard

6

โปรแกรมที่ตระหนักถึงการทำไฮเปอร์เธรดสามารถแยกความแตกต่างระหว่างฟิสิคัลคอร์กับฟิสิคัล (เสมือน) คอร์และจัดสรรทรัพยากรให้สอดคล้องกัน

การทำไฮเปอร์เธรดลดค่าใช้จ่ายของการสลับบริบทโดยอนุญาตให้สถานะของกระบวนการสองกระบวนการถูกเก็บไว้ในเวลาใดก็ตามแทนที่จะเป็นเพียงหนึ่งสถานะในแต่ละครั้ง การสลับบริบทมักจะถือว่ามีราคาแพงมากเนื่องจากคุณต้องโหลดสถานะทั้งหมดของกระบวนการลงใน CPU ซึ่งหมายความว่าหากคุณมีกระบวนการที่ใช้ CPU อย่างมาก CPU ที่มีเธรดมากสามารถสลับระหว่างกระบวนการนั้นกับกระบวนการอื่น ๆ โดยไม่เกิดผลกระทบต่อประสิทธิภาพมากนัก

ข้อดีของการใช้เซิร์ฟเวอร์เสมือนคือคุณสามารถสร้างกลุ่มทรัพยากรขนาดใหญ่ซึ่งสามารถจัดสรรให้กับเซิร์ฟเวอร์ต่าง ๆ ได้ตามต้องการ ซึ่งรวมถึงการจัดสรรแกน CPU อีกครั้งและปรับสมดุลภาระให้กับแกนประมวลผลที่มีทั้งหมด หากไฮเปอร์ไวเซอร์ไม่ทราบความแตกต่างระหว่างฟิสิคัลคอร์กับโลจิคัลคอร์คุณก็พูดถูก - คอร์ฟิสิคัลบางคอร์อาจไม่ได้ทำงานขณะที่คอร์อื่น ๆ ถูกตรึงไว้ที่การใช้งาน CPU 100% เวลา. อย่างไรก็ตามหากไฮเปอร์ไวเซอร์สามารถบอกความแตกต่างระหว่างฟิสิคัลคอร์และโลจิคัลคอร์ได้มันจะพยายามสร้างสมดุลของโหลดซีพียูข้ามซีพียูฟิสิคัลก่อนที่จะจัดสรรหลายโพรเซสให้กับสองแกนตรรกะที่อยู่ในฟิสิคัลคอร์เดียวกัน


2

ฉันไม่ได้ศึกษาปัญหาโดยละเอียด แต่ Microsoft ไม่แนะนำให้ใช้ไฮเปอร์เธรดกับ Exchange 2010 เนื่องจากปัญหา "การวางแผนกำลังการผลิตและการตรวจสอบ" คุณอาจต้องการทดสอบปริมาณงานของคุณก่อนที่จะเลือกการกำหนดค่าอย่างใดอย่างหนึ่ง


-2

Hyperthreading: ว้าวโปรเซสเซอร์ฟรี!

ปิดมัน. ในขณะที่การใช้งานสมัยใหม่ของ multithreading พร้อมกัน (SMT) หรือที่รู้จักกันในชื่อ hyperthreading สามารถปรับปรุงปริมาณงานของ CPU สำหรับแอพพลิเคชั่นส่วนใหญ่ได้อย่างแท้จริงประโยชน์ที่ได้รับจาก Exchange 2013 นั้นไม่ได้มีผลกระทบเชิงลบมากนัก ปรากฎว่าอาจมีผลกระทบอย่างมีนัยสำคัญต่อการใช้หน่วยความจำบนเซิร์ฟเวอร์ Exchange เมื่อเปิดใช้งานไฮเปอร์เธรดเนื่องจากวิธีที่ตัวรวบรวมขยะของเซิร์ฟเวอร์. NET จัดสรรฮีป ตัวรวบรวมขยะเซิร์ฟเวอร์จะดูจำนวนตัวประมวลผลเชิงตรรกะทั้งหมดเมื่อแอปพลิเคชันเริ่มทำงานและจัดสรรฮีปต่อตัวประมวลผลเชิงตรรกะ ซึ่งหมายความว่าการใช้หน่วยความจำเมื่อเริ่มต้นสำหรับหนึ่งในบริการของเราที่ใช้ตัวรวบรวมขยะของเซิร์ฟเวอร์จะใกล้เคียงกับสองเท่าเมื่อเปิดใช้งานไฮเปอร์เธรดเมื่อเทียบกับเมื่อปิดใช้งาน การเพิ่มหน่วยความจำที่สำคัญนี้ พร้อมกับการวิเคราะห์การเพิ่มปริมาณงาน CPU ที่แท้จริงสำหรับปริมาณงาน Exchange 2013 ในการทดสอบในห้องปฏิบัติการภายในได้นำเราไปสู่แนวทางปฏิบัติที่ดีที่สุดที่ hyperthreading ควรปิดใช้งานสำหรับเซิร์ฟเวอร์ Exchange 2013 ทั้งหมด ประโยชน์ไม่ได้มีมากกว่าผลกระทบด้านลบ

คัดลอกมาจาก: http://blogs.technet.com/b/exchange/archive/2013/05/06/ask-the-perf-guy-sizing-exchange-2013-deployments.aspx


3
ฉันสับสน ทำไมคุณถึงพูดถึงการแลกเปลี่ยน? คำถามเกี่ยวกับผลกระทบต่อ hyperv และอันที่จริงย่อหน้าด้านล่างที่คัดลอกไปกล่าวว่าไฮเปอร์เธรดไม่ได้ส่งผลกระทบต่อเซิร์ฟเวอร์แลกเปลี่ยนเสมือนจริงถ้าฉันอ่านมันถูกต้อง
Andy
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.