หวังว่ายังคงจำ Physical memory กับ Machine Memory กันได้นะครับ
คราวนี้เราจะนำความรู้จากโพสที่แล้วนั้น มาทำความเข้าใจกับ parameter ต่างๆบนหน้าต่างของ vSphere Client
จากรูปทางฝั่งซ้ายจะเห็นได้เลยนะครับว่า เครื่อง VM นี้ เซ็ต memory ไว้ที่ประมาณ 7 GB (7168 MB)
เริ่มจาก
Memory Overhead = 87.68 MB Memory Overhead นั้นเป็นmemory ที่ ESXi ใช้ไปในการ virtualize VM เครื่องนี้ เนื่องจาก kernel นั้นจำเป็นต้องสำรอง memory ส่วนหนึ่งไว้เพื่อใช้ในการจัดการ memory ของ Guest นั้นๆ (Machine memory )
Consumed Host Memory = 1813 MB เป็น memory จริง (Machine memory) ที่ Guest ใช้ไปในขณะนั้น
Active Guest Memory = 150 MB เป็น memory จริง (Machine memory) ที่ ของ Guest นั้น ESXi เห็นว่า Active อยู่
ดังนั้น สำหรับเครื่อง Windows เครื่องนี้นั้น configure memory ไว้ที่ 7GB (Maximum) แต่ใช้ machine memory จริงๆ แค่ 1813 MB โดย machine memory ที่ active จริงๆนั้นมีแค่ 150 MB
Note: 1.ค่าเหล่านี้ เป็นค่าของ machine memory ทั้งสิ้น แต่ค่าที่เราเห็นจาก Task manager บน VM นั้นๆ เป็นค่าที่ Guest OS (Windows) นั้นเห็น (Physical memory) ดังนั้นทั้งสองค่าจะไม่เท่ากันนะครับ เนื่องจากเป็นค่าของ memory ที่มาจากคนละ layer กัน
2. ใน vSphere client นั้น จะใช้ host memory แทนคำว่า machine memory นะครับ
มาดูรูปถัดไปกันนะครับ (คนละ VM กับรูปแรกนะครับ )
เครื่อง VM นี้เซ็ต memory ไว้ 4 GB โดยกิน host memory ไปแล้ว 1.83 GB และเสียค่า overhead ไป 59 MB โดย 59 MB นี้จะรวมอยู่ใน 1.83 GB
ต่อมา เราจะเห็นได้ว่า Private Memory (Host Memoryของ Guest ที่ไม่ได้ถูก Shared ) คือ 1.77 GB โดย VM เครื่องนี้ share memory กับ VM เครื่องอื่นๆประมาณ 2.15 GB โดยยังไม่ได้ใช้ memory (เหลือ)อยู่ 84 MB (1.77 GB + 2.15 GB + 84MB = 4 GB)
Balloon , swap และ compressed มีค่าเป็นศูนย์สื่อว่า ระบบนั้นยังมี memory เพียงพอ จึงไม่ต้องไปใช้ swap ,ไม่ต้องใช้ balloon และไม่ต้อง compress memory ดังนั้นจะเห็นได้ว่าที่กินไปทั้งหมด 1.83GB นั้น เป็นของตัวเอง 1.77GB + 59 MB ทีมาจาก overhead นั่นเอง
ผมหวังว่าคงจะเข้าใจ parameter ต่างๆของ memory มากขึ้นแล้วนะครับ ซึ่งจะช่วยในการแก้ปัญหาที่เกี่ยวกับ memory เป็นอย่างมากครับ