ทำไมระบบของฉันถึงมีการแลกเปลี่ยนถ้ามีแรมว่าง


1

ฉันมีโฮสต์ KVM ที่ใช้งานเครื่องเสมือนหลายเครื่อง ฮาร์ดแวร์ประกอบด้วย ram 24 แกน w / 40G of ram นี่คือผลลัพธ์ของfreeคำสั่ง:

                     total      used       free     shared  buffers  cached 
Mem:                 41180500   32340344   8840156       0  2126008  36480
-/+ buffers/cache:   30177856   11002644 
Swap:                3903484    3511516    391968

ทำไมการแลกเปลี่ยนระบบถึงยังคงมี RAM ว่างอยู่มากมาย อาชีพไม่เคยเกิน 80% (nagios ไม่เคยรายงานมากกว่าจำนวนนั้น) และเนื่องจาก 20% ของ RAM เป็น 8G ก็ยังมากกว่า swap ที่มีอยู่ (ซึ่งก็คือ 4G)

คำตอบ:


2

ลองดูที่นี้บทความ มันอธิบายถึงปัญหาการแก้ปัญหาและการวัดประสิทธิภาพอย่างรวดเร็ว โดยย่อการตั้งค่าบางอย่างที่ควรปรับปรุงสถานการณ์คือ:

vm.swappiness=20
vm.vfs_cache_pressure=50

คำอธิบายของสิ่งที่พวกเขาและสิ่งที่พวกเขาสามารถพบได้ในบทความ


มีปัญหาอะไร? ไม่มีการพูดถึงปัญหา
David Schwartz

@DavidSchwartz "ปัญหา" คือระบบกำลังทำการสลับเมื่อยังมีฟิสิคัลแรมว่างอยู่ แม้ว่าคุณจะไม่สามารถลดเป็นศูนย์ในการตั้งค่าในโลกแห่งความเป็นจริงได้ แต่ความพยายามง่าย ๆ สองสามอย่างในการลดการแลกเปลี่ยนจะช่วยปรับปรุงประสิทธิภาพในระดับหนึ่งอย่างไม่ต้องสงสัย
Doktor J

@DoktorJ ไม่มีอะไรในคำถามที่แสดงให้เห็นว่าการแลกเปลี่ยนนั้นมีผลกระทบทางลบต่อประสิทธิภาพ เป็นไปได้ทั้งหมด (อันที่จริงแล้วน่าจะมาจากข้อมูลในคำถาม) ว่ามีผลกระทบเชิงบวกโดยอนุญาตให้ดิสก์แคชมีขนาดใหญ่ขึ้น
David Schwartz


0

ในระบบที่ทันสมัยการสลับจะยังคงไม่ได้ใช้ กระบวนการที่ใช้เวลานานถูกเลื่อนเพื่อสลับโดยเคอร์เนล บางโปรแกรมเริ่มทำงานช้าลงเพราะสิ่งนั้น คุณบอกว่าคุณมี RAM ว่างดังนั้นคุณสามารถปิดการใช้งาน swap โดยใช้คำสั่ง: swapoff -av (นำหน้าด้วยsudoหากคุณไม่รูท)

หากคุณไม่ชอบการสลับคุณอาจเปิดใช้งานโดยใช้คำสั่งย้อนกลับ: swapon -av(อีกครั้งด้วยsudoหากจำเป็น)


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