มีเหตุผลหรือไม่ที่จะให้ VM เป็นจำนวนเต็ม -2 หน่วย (2048MB, 4096MB และอื่น ๆ )?


26

ชื่อค่อนข้างจะบอกว่ามันมีประโยชน์ที่จะให้ VM 2048MB ของหน่วยความจำแทนการปัดเศษเป็น base-10 และทำ 2000MB หรือไม่

คำตอบ:


10

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


หน้าเป็น 4 KiB หรือ 2 MiB ส่วนใหญ่ - ไม่มีปัญหาจริงแม้แต่กับการแบ่ง 1234 MiB แม้มี?
poige

1
@poige ที่ดีที่สุดฉันรู้ว่าไม่มีปัญหา ... เราต้องการคนที่รู้จัก SLAT (et alii) ทั้งในและนอกเพื่อรับคำตอบที่ชัดเจน
Chris S

13

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

นอกจากนั้นไม่เป็นไร


7

เพียงชี้แจงสิ่งที่คำตอบอื่น ๆ พูด; ขีด จำกัด ที่กำหนดไว้ที่นี่นั้นโดยทั่วไปแล้วสำหรับซอฟต์แวร์เครื่องเสมือนของคุณไม่ใช่แขก นั่นคือเมื่อระบบปฏิบัติการเกสต์ของคุณร้องขอหน้าหน่วยความจำการทำเช่นนั้นจะเพิ่มขึ้นตามที่กำหนดไว้ (เช่น 4KB) ดังนั้นหากคุณกำหนดเครื่องเสมือนให้มี RAM 4097KB และ VM โฮสต์ของคุณใช้ขนาดหน้า 4KB ดังนั้นจึงน่าจะให้ RAM ทั้งหมด 4100KB กับเครื่องเสมือน

อย่างไรก็ตามหาก guest OS ต้องใช้ขนาดหน้า 1KB และระบบปฏิบัติการโฮสต์ของคุณใช้ขนาดหน้า 4KB ดังนั้นระบบปฏิบัติการโฮสต์จะให้พื้นที่ 4KB เป็นหลักซึ่งจะใช้เพียง 1KB เท่านั้น - แต่นั่นไม่ใช่ทั้งหมด หน่วยความจำ ดังนั้นคุณจะไม่สูญเสียพื้นที่ที่มองเห็นได้อย่างแท้จริง

หากต้องการทราบว่าการจัดตำแหน่งระหว่างโฮสต์ OS และเกสต์ OS ไม่ได้เป็นปัจจัยที่นี่ยกเว้น "บิตสุดท้าย"


สิ่งนี้ไม่เป็นจริงภายใต้สถานการณ์บางอย่าง: ตัวอย่างเช่นซอฟต์แวร์ VM สามารถจองจำนวน RAM ทั้งหมดที่ร้องขอ (รวมถึงสิ่งที่จำเป็นสำหรับการ์ดแสดงผลและอื่น ๆ ที่จำเป็น) หรือเมื่อใช้การซ้อนหน้าเพจ / การสนับสนุนฮาร์ดแวร์ตารางเพจแบบซ้อน - แขก จัดการหน้าฟิสิคัลของหน่วยความจำได้อย่างมีประสิทธิภาพโดยใช้ฮาร์ดแวร์ของ CPU นอกจากนี้การสำรองหน่วยความจำ 4097KB น่าจะจัดสรร RAM ทางกายภาพ 4100KB เป็นจำนวนมากแม้ว่า 4097KB นั้นจะสามารถกำหนดแอดเดรสได้จริงโดยระบบปฏิบัติการของแขก
Goyuix

2
ฉันไม่เห็นว่าสิ่งที่คุณพูดนั้นขัดแย้งกับคำตอบของฉันอย่างไร คุณสามารถทำอย่างละเอียด?
Andrew M.

นั่นอาจเป็นความตั้งใจของคุณ แต่ในการอ่านคำตอบของคุณว่า "คุณจะไม่สามารถใช้ 1KB พิเศษนั้น" - ฉันพยายามชี้แจงว่าระบบปฏิบัติการทั่วไป (ในทางทฤษฎี) สามารถใช้ RAM นั้นแม้ว่า 3/4 ของ หน้าเว็บทางกายภาพน่าจะไม่ถูกแตะต้อง คำตอบของคุณไม่ได้อ่านอย่างชัดเจนสำหรับฉัน ฉันพยายามเสนอคำหลัก / เทคโนโลยีที่จะมีผลต่อการตัดสินใจเหล่านั้น ปัญหาการจัดตำแหน่งหน้าเป็นเพียงส่วนหนึ่งของการแลกเปลี่ยนที่จะต้องพิจารณาและฉันรู้สึกว่าคำตอบสามารถปรับปรุงได้โดยการกล่าวถึงผลกระทบที่เกี่ยวข้องกับมันโดยเฉพาะ
Goyuix

อาฉันเห็นว่าฉันไปผิดที่ไหน นั่นเป็นวิธีที่ฉันจินตนาการไว้ แต่ฉันต้องกำจัดมันออกไปในการแก้ไขต่างๆของฉัน ฉันได้อัปเดตเพื่อให้ความกระจ่าง :)
Andrew M.

3

ฉันสงสัยว่ามันเป็นเรื่องของประเพณีและสอดคล้องกับวิธีการสร้างระบบทางกายภาพ ระบบทางกายภาพมีหน่วยความจำในจำนวนฐาน 2 (และอย่างน้อยก็กับทุก ๆ x86 ที่เคยทำซึ่งเป็นจริง) และมีโอกาสบ้างหากมีระบบปฏิบัติการไม่มากนักที่คาดหวังสิ่งนี้ในการจัดการหน่วยความจำ

กล่าวโดยสรุปก็คือจริงๆแล้วเพราะเครื่องเสมือนสะท้อนให้เห็นถึงเครื่องจริงมากกว่าเครื่องสมมุติ ไม่ใช่คำตอบทางเทคนิค แต่ฉันคิดว่านั่นเป็นของจริง


1

ไม่ได้จริงๆ หน่วยความจำแบบไดนามิก Hyper-v จะจัดสรรสิ่งที่ระบบใช้อยู่แล้วเท่านั้น จำนวนเงินที่คุณกำหนดคือค่าเริ่มต้น หากคุณไม่ได้ใช้หน่วยความจำแบบไดนามิกข้อดีอย่างเดียวที่ฉันเห็นคือการจัดตำแหน่งหน่วยความจำกายภาพให้เสมือน



-1 ดูว่า Hyper-V ไม่มีหน่วยความจำแบบไดนามิกหากไม่มีการกำหนดค่า และคาดเดาสิ่ง - บางครั้งมันก็สมเหตุสมผลที่จะไม่ใช้สิ่งนั้น (การหาตำแหน่งที่ต้องใช้เวลาดังนั้นเซิร์ฟเวอร์ฐานข้อมูลจึงต้องการทุกอย่างในเวลาเดียวกัน) ดังนั้นคำตอบทั่วไปจึงไม่เกี่ยวข้องและ - จริง - ไม่ใช่สิ่งที่ถูกถามเลย
TomTom
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.