ปัญหาการใช้งาน Dynamic Memory ใน Hyper-V

0

ผมมีประสบการณ์เกี่ยวกับปัญหาในการใช้งานฟีเจอร์ Dynamic Memory ใน Hyper-V ซึ่งรันอยู่บนโฮสต์ Windows Server 2012 R2 มาฝากเพื่อแบ่งปันและแลกเปลี่ยนข้อคิดความเห็นกันครับ

ปัญหาการใช้งาน Dynamic Memory ใน Hyper-V

เรื่องนี้เกิดขึ้นในระหว่างที่ผมทำการสร้างคอมพิวเตอร์เสมือน (Virtual Machine) ใน Hyper-V ซึ่งรันอยู่บนโฮสต์ Windows Server 2012 R2 โดยผมได้เปิดใช้งานฟีเจอร์ Dynamic Memory บนคอมพิวเตอร์เสมือน เมื่อผมเปิดเครื่องคอมพิวเตอร์เสมือนเพื่อทำการติดตั้งระบบปฏิบัติการเกสต์ (ใช้เป็น Windows 10 ครับ) ก็เกิดปัญหาการทำงานช้าเป็นอย่างมากทั้งที่มีคอมพิวเตอร์เสมือนรันอยู่เพียงตัวเดียว (คือตัวที่มีปัญหา)

ผมจึงทำการปิดเครื่องคอมพิวเตอร์เสมือนแล้วทำการตรวจสอบการตั้งค่าอย่างละเอียด ซึ่งพบว่าการตั้งค่ามีความผิดปกติในการตั้งค่า Dynamic Memory ซึ่งน่าจะเป็นสาเหตุที่ทำให้คอมพิวเตอร์เสมือนทำงานช้า ผมจึงทำการแก้ไขการตั้งค่าใหม่เสร็จแล้วทำการเปิดคอมพิวเตอร์เสมือน ผลปรากฏว่าทำงานได้อย่างที่ควรจะเป็น ดังนั้นจึงสรุปได้ว่าปัญหานี้เกิดจากการตั้งค่า Dynamic Memory ไม่เหมาะสมนั้นเอง

ก่อนที่จะเฉลยว่าตั้งค่า Dynamic Memory ที่ไม่เหมาะสมนั้นเป็นอย่างไร ขอเริ่มจากการแนะนำให้รู้จักกับ Dynamic Memory และประโยชน์ของมันก่อนดังนี้ครับ

Dynamic Memory คือ?

Dynamic Memory เป็นฟีเจอร์ที่ช่วยให้ Hyper-V ใช้งานหน่วยความจำ (Physical Memory) ได้อย่างมีประสิทธิภาพ โดยไมโครซอฟท์ได้นำมาใช้ครั้งแรกบน Windows Server 2008 R2 ที่ติดตั้ง SP1

Dynamic Memory ช่วยให้ Hyper-V สวามารถจัดหน่วยความจำในลักษณะของ Shared Resource ที่พร้อมจัดสรรให้กับคอมพิวเตอร์เสมือนที่กำลังรันอยู่บนระบบโดยอัตโนมัติ โดย Dynamic Memory จะทำการปรับขนาดหน่วยความจำที่คอมพิวเตอร์เสมือนใช้งานตามความต้องการหน่วยความจำ (Memory demand) จริงแต่ไม่สูงกว่าค่าสูงสุดที่กำหนดไว้

ประโยชน์ของ Dynamic Memory?

Dynamic Memory ทำให้การขยายระบบทำได้ง่ายขึ้น และ Hyper-V สามารถรองรับจำนวนคอมพิวเตอร์เสมือนได้มากขึ้น เนื่องจาก การกำหนดหน่วยความจำให้กับคอมพิวเตอร์เสมือนแบบคงที่ (Static Memory) นั้น คอมพิวเตอร์เสมือนแต่ละตัวจะครอบครองหน่วยความจำที่กำหนดให้ตลอดเวลาที่รันไม่ว่ามันจะอยู่ในสถานะทำงานหรือไม่ก็ตาม โดยคอมพิวเตอร์เสมือนจะคืนหน่วยความจำให้ระบบก็ต่อเมื่อมันอยู่ในสถานะบันทึก (Saved) หรือปิดเครื่อง(Turn off) เท่านั้น

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

การตั้งค่า Dynamic Memory

ปกติแล้วเมื่อทำการสร้างคอมพิวเตอร์เสมือน Hyper-V (ขออนุญาตไม่ลงรายละเอียดการสร้างคอมพิวเตอร์เสมือนนะครับ) จะพร้อมท์ให้เลือกว่าจะทำการเปิดใช้ Dynamic Memory หรือไม่ถ้าต้องการเปิดใช้ก็เลือก Use Dynamic memory for this virtual machine ดังรูปด้านล่าง

อย่างไรก็ตาม การตั้งค่าตามวิธีการด้านบนมีประเด็นคือ ถึงแม้ว่าจะทำการกำหนก Startup memory เป็น 4096 MB แต่ Hyper-V จะกำหนด Minimum RAM เป็น 512 MB ซึ่งส่งผลให้คอมพิวเตอร์เสมือนมีปัญหาเรื่องประสิทธิภาพการทำงาน

แล้วจะแก้ปัญหานี้อย่างไร?

สำหรับวิธีการแก้ปัญหาคอมพิวเตอร์เสมือนใน Hyper-V ทำงานช้าเนื่องจากสาเหตุการเปิดใช้ Dynamic Memory นั้นทำได้ 2 วิธี

  • วิธีแรกคือ ทำการปิด Dynamic Memory
  • วิธีที่สอง คือ ทำการตั้งค่า Minimum RAM ให้เท่ากับ Startup memory ลักษณะดังรูปล่าง

วิธีการตั้งค่า Dynamic Memory ทำได้โดยให้คลิกขวาบนคอมพิวเตอร์เสมือน จากนั้นเลือก Settings แล้วบนหน้า Settings ให้เลือก Memory ในด้านซ้ายมือ จากนั้นภายใต้หัวข้อ Enable Dynamic Memory ให้ทำการตั้งค่า Minimum RAM ให้เท่ากับ Startup memory

หมายเหตุ: การตั้งค่า Dynamic Memory ต้องทำในขณะที่คอมพิวเตอร์เสมือนปิดเครื่อง

สรุป

จากปัญหานี้ สรุปได้ว่าการเปิดใช้งาน Dynamic Memory บนคอมพิวเตอร์เสมือนใน Hyper-V ควรตั้งค่า Minimum RAM ให้เท่ากับ Startup memory เพื่อให้คอมพิวเตอร์เสมือนทำงานได้อย่างมีประสิทธิภาพ

ถ้าหากใครมีวิธีการแก้ไขแบบอื่นๆ สามารถแนะนำได้ในส่วนแสดงความคิดเห็นด้านล่างได้นะครับ

ประวัติการปรับปรุง
1 ตุลาคม 2560: เผยแพร่ครั้งแรก

Comments

comments

Share.

Comments are closed.