Linux VM ควรอยู่ใน VMware / ESX ควรมีพาร์ทิชัน swap หรือไม่?


18

ในการตั้งค่า VMware ESX ความแตกต่างของตัวเลือกเหล่านี้คืออะไร:

  • Linux VM พร้อม 1GB RAM และ 1GB swap partition และ VM ใช้ RAM 1.5 GB
  • Linux VM ที่มี 1GB RAM และไม่มี swap partition และ VM ใช้ RAM 1.5 GB

ฉันหมายถึงว่ามีการใช้การสลับทั้งสองกรณี

  • ในการแลกเปลี่ยนครั้งแรกจะทำเพื่อแลกเปลี่ยนพาร์ทิชันลินุกซ์
  • ในกรณีที่สอง VMware จะสลับ 512MB ไปยังพูลหน่วยเก็บข้อมูล VMware

มีจุดใดในการให้พาร์ทิชัน swap ของ Linux VM หรือไม่


คุณกำลังถามว่าโฮสต์ ESX ต้องการการแลกเปลี่ยนหรือไม่หรือมันจัดการกับ VM ได้อย่างไร? อาจต้องการอธิบายรายละเอียดของคำถามเพื่อระบุสิ่งที่คุณหมายถึง
Bart Silverstrim

หวังว่าจะทำตอนนี้
Sandra

คำตอบ:


15

ไม่สนใจข้อเท็จจริงที่ว่าผู้คนกำลังจัดการกับเหตุผลเฉพาะของระบบปฏิบัติการฉันมีสองเหตุผลว่าทำไมจึงเป็นความคิดที่ดีที่จะไม่ทำงานกับพาร์ทิชัน / ไฟล์สลับ

  1. หากคุณมี RAM 1.5 GB ที่จัดสรรให้กับ VM โดยไม่มีพื้นที่ไฟล์ / พาร์ติชันและต้องการใช้ 1.5 GB + 1 MB จะรายงานข้อผิดพลาดหน่วยความจำไม่เพียงพอ ด้วยพื้นที่สว็อปจะทำให้สามารถสลับข้อมูลจากหน่วยความจำที่ใช้งานอยู่และลงบนดิสก์ได้
  2. guest OS ทำหน้าที่จัดการหน่วยความจำได้ดีกว่าโฮสต์ นี่คือเหตุผลว่าทำไมเทคโนโลยีเช่นการสร้างบอลลูนหน่วยความจำจึงมีอยู่เพราะโฮสต์สามารถคาดเดาได้อย่างถูกต้องว่าหน่วยความจำใดที่ไม่ต้องการในตอนนี้ แต่แขกรับรู้ถึงระดับที่ชาญฉลาดกว่านี้

10

ใช่. มันเป็นวิธี Unix

Unix (แม้แต่ Linux) คาดว่าจะสามารถแลกเปลี่ยนได้
สิ่งไม่ดีเกิดขึ้นเมื่อระบบไม่สามารถสลับได้ (อย่างใดอย่างหนึ่งเนื่องจากมีการกำหนดค่าผิดโดยไม่มีพาร์ติชันการสลับหรือเนื่องจากพื้นที่การแลกเปลี่ยนเต็ม) ใน Linux หนึ่งในสิ่งไม่ดีเหล่านี้คือ Out Of Memory Killer ซึ่งจะกระโดดมีดเข้าไปด้านหลังของโปรแกรมที่คิดว่าใช้ RAM ส่วนใหญ่ (เซิร์ฟเวอร์ฐานข้อมูลเป็นเป้าหมายที่โปรดปราน)


4

คุณ/proc/sys/vm/overcommit_memoryตั้งค่าอะไร จากเอกสารเคอร์เนล:

0       -       Heuristic overcommit handling. Obvious overcommits of
                address space are refused. Used for a typical system. It
                ensures a seriously wild allocation fails while allowing
                overcommit to reduce swap usage.  root is allowed to
                allocate slightly more memory in this mode. This is the
                default.

1       -       Always overcommit. Appropriate for some scientific
                applications.

2       -       Don't overcommit. The total address space commit
                for the system is not permitted to exceed swap + a
                configurable percentage (default is 50) of physical RAM.
                Depending on the percentage you use, in most situations
                this means a process will not be killed while accessing
                pages but will receive errors on memory allocation as
                appropriate.

ดังนั้นหากคุณใช้ 1 จะไม่มีความแตกต่าง หากคุณใช้ 2 และไม่มีไฟล์สลับ linux ดังนั้นกระบวนการจะไม่สามารถจัดสรรหน่วยความจำ (เสมือน) 512M ผลลัพธ์ไม่ชัดเจนสำหรับ 0

แก้ไข: จากhttp://utcc.utoronto.ca/~cks/space/blog/linux/LinuxVMOvercommitนี่คือวิธีที่ 0:

Heuristic overcommit พยายามที่จะคำนวณจำนวนหน่วยความจำที่ระบบสามารถให้กับคุณได้หากหน่วยความจำทั้งหมดสามารถเรียกคืนได้และไม่มีกระบวนการอื่นใดที่ใช้ RAM มากกว่าที่เป็นอยู่ในปัจจุบัน หากคุณขอมากกว่านี้การจัดสรรของคุณจะถูกปฏิเสธ โดยเฉพาะอย่างยิ่งตัวเลข 'หน่วยความจำว่าง' ในทางทฤษฎีคำนวณโดยการเพิ่มพื้นที่ว่างในการแลกเปลี่ยนฟรี, RAM ว่าง (น้อยกว่า 1 / 32nd ถ้าคุณไม่ใช่รูท), และพื้นที่ทั้งหมดที่ใช้โดยแคชบัฟเฟอร์แบบครบวงจรและข้อมูลเคอร์เนล (หักบางหน้าที่สงวนไว้)

ดังนั้นมันจึงใช้ swap ในการคำนวณเช่นกัน โดยทั่วไปฉันจะทำตามคำแนะนำ RHEL ของ:

M = Amount of RAM in GB, and S = Amount of swap in GB, then
If M < 2
    S = M *2
Else
    S = M + 2

1
cat /proc/sys/vm/overcommit_memory0ผลตอบแทน คุณแนะนำอะไรในแง่ของovercommit_memoryมูลค่าและการแลกเปลี่ยน / ไม่มีการสลับ
Sandra

3

พาร์ติชัน Swap อาจเร็วขึ้นโดยเฉพาะอย่างยิ่งในสถานการณ์ที่ดิสก์รูทเกือบเต็มและคุณไม่สามารถสร้างไฟล์สวอปในชิ้นเดียวโดยไม่มีการแตกแฟรกเมนต์ LVM

แต่ประสิทธิภาพของทั้งสองเครื่องจะดูดอยู่ดีถ้าคุณรักษา 33% ของความต้องการหน่วยความจำไว้ในดิสก์


เมื่อคุณพูดว่า "รูตดิสก์" คุณหมายถึงโฮสต์ ESX ที่ ESX สร้างไฟล์ swap หรือไม่
Sandra

ไม่ฉันหมายถึงดิสก์ระบบของ VM ที่มีระบบไฟล์รูท ท้ายที่สุดนั่นคือสิ่งที่การแลกเปลี่ยนจะเกิดขึ้นในกรณีที่ไม่มีพาร์ทิชัน swap เฉพาะ
สเวน

หมายเหตุคำตอบนี้กำลังโต้วาทีระหว่าง swap พาร์ทิชันกับไฟล์ swap ฉันคิดว่าคำถามคือคุณต้องการสลับเลยหรือเปล่า
606723

@ user606723: หากคุณไม่ได้ใช้ swap เลยคุณจะพบข้อผิดพลาดหน่วยความจำไม่เพียงพอถ้าคุณพยายามจัดสรรหน่วยความจำให้มากกว่าที่ VM มีและการใช้ 1.5GB กับสถานการณ์ทางกายภาพ 1GB ไม่สามารถเกิดขึ้นได้
สเวน

@SevenW ใช่ แต่ไม่ใช่ว่าบางสิ่งเช่นนั้นมีแนวโน้มที่จะเกิดขึ้น สำหรับผู้ดูแลระบบในการตัดสินใจ
606723

0

โปรดดูลิงค์ต่อไปนี้ - https://help.ubuntu.com/community/SwapFaq

โดยทั่วไปถ้าคุณไม่จำเป็นต้องจำศีลหรือใช้หน่วยความจำมากกว่าที่คุณจัดสรรให้กับ VM ไม่มีข้อได้เปรียบที่สำคัญสำหรับพาร์ติชัน swap

ฉันไม่ได้ใช้ swap partition / ไฟล์บนเครื่อง linux ของฉันมานานหลายปี


1
คำถามไม่ได้เกี่ยวกับการสลับ / ไม่มีการสลับ มันเกี่ยวกับวิธีที่ VMware จัดการกับการแลกเปลี่ยน
Sandra

0

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

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.