การจัดการหน่วยความจำ VMware ดูเหมือนจะเป็นการปรับสมดุลให้ยุ่งยาก ด้วยคลัสเตอร์แรม, Resource Pools, เทคนิคการจัดการของ VMware (TPS, การทำบอลลูน, การสลับโฮสต์), การใช้ RAM ในห้องพัก, การแลกเปลี่ยน, การจองการแชร์และข้อ จำกัด มีตัวแปรมากมาย
ฉันอยู่ในสถานการณ์ที่ลูกค้ากำลังใช้ทรัพยากรคลัสเตอร์ vSphere เฉพาะ อย่างไรก็ตามพวกเขากำลังกำหนดค่าเครื่องเสมือนราวกับว่าพวกเขาอยู่บนฮาร์ดแวร์ทางกายภาพ ในทางกลับกันสิ่งนี้หมายความว่าบิวด์ VM มาตรฐานอาจมี 4 vCPUs และ RAM 16GB หรือมากกว่า ฉันมาจากโรงเรียนที่เริ่มต้นเล็ก (1 vCPU, RAM น้อยที่สุด), ตรวจสอบการใช้งานจริงและปรับตามความจำเป็น น่าเสียดายที่ความต้องการของผู้จำหน่ายจำนวนมากและผู้คนที่ไม่คุ้นเคยกับการจำลองเสมือนร้องขอทรัพยากรมากกว่าที่จำเป็น ... ฉันสนใจที่จะประเมินผลกระทบของการตัดสินใจนี้
ตัวอย่างบางส่วนจากกลุ่ม "ปัญหา"
สรุปกลุ่มทรัพยากร - มีลักษณะเกือบ 4: 1 มีคำสั่งมากเกินไป สังเกตปริมาณ RAM ที่บอลลูนอยู่ในระดับสูง
การจัดสรรทรัพยากร - คอลัมน์การจัดสรรกรณีที่เลวร้ายที่สุดแสดงให้เห็นว่า VM เหล่านี้จะสามารถเข้าถึง RAM ที่กำหนดค่าน้อยกว่า 50% ภายใต้เงื่อนไขที่ จำกัด
กราฟการใช้งานหน่วยความจำตามเวลาจริงของ VM อันดับต้น ๆ ในรายการด้านบน จัดสรร 4 vCPU และ 64GB RAM มันมีค่าเฉลี่ยต่ำกว่าการใช้งาน 9GB
สรุปของ VM เดียวกัน
ข้อเสียของการทับซ้อนและการกำหนดค่าทรัพยากร (RAM เฉพาะ) ในสภาพแวดล้อม vSphere คืออะไร
สมมติว่า VM สามารถทำงานใน RAM น้อยกว่ามันเป็นธรรมที่จะบอกว่ามีค่าใช้จ่ายในการกำหนดค่าเครื่องเสมือนที่มี RAM มากกว่าที่พวกเขาต้องการจริงหรือไม่
ข้อโต้แย้งคืออะไร: "ถ้า VM มี RAM 16GB จัดสรร แต่ใช้ 4GB เท่านั้นปัญหาคืออะไร" ลูกค้าจำเป็นต้องได้รับการศึกษาหรือไม่ว่าVMs ไม่เหมือนฮาร์ดแวร์จริง?
ควรใช้การวัดแบบใดเพื่อวัดการใช้ RAM ติดตามยอดของ "ใช้งาน" กับเวลา? กำลังดู "บริโภค" หรือไม่
อัปเดต:ฉันใช้vCenter Operations Managerเพื่อทำโปรไฟล์สภาพแวดล้อมนี้และรับรายละเอียดบางอย่างเกี่ยวกับสถานะของคลัสเตอร์ที่ระบุไว้ด้านบน ในขณะที่สิ่งที่ overcommitted แน่นอนที่ VMs เป็นจริงดังนั้น overconfigured กับ RAM ที่ไม่จำเป็นที่จริง (เล็ก ๆ ) รอยความทรงจำไม่แสดงการต่อสู้ของหน่วยความจำที่ระดับคลัสเตอร์ / เจ้าภาพ ...
สิ่งที่ฉันใช้คือ VMs ควรมีขนาดที่เหมาะสมพร้อมบัฟเฟอร์เล็กน้อยสำหรับการแคชระดับ OS การออกคำสั่งเกินความไม่รู้หรือ "ข้อกำหนด" ของผู้ขายจะนำไปสู่สถานการณ์ที่แสดงไว้ที่นี่ ดูเหมือนว่าการบอลลูนหน่วยความจำจะไม่ดีในทุกกรณีเนื่องจากมีผลกระทบต่อประสิทธิภาพการปรับขนาดที่เหมาะสมสามารถช่วยป้องกันปัญหานี้ได้
อัปเดต 2: VMs เหล่านี้บางตัวเริ่มที่จะขัดข้องด้วย:
kernel:BUG: soft lockup - CPU#1 stuck for 71s!
VMware อธิบายว่านี่เป็นอาการของ overcommitment ดังนั้นฉันเดาว่าจะตอบคำถาม
vCops รายงาน "เครื่องเสมือนขนาดใหญ่" ...
vCops กราฟ "ของเสียที่เรียกคืนได้" ...