Linux: หน่วยความจำว่าง แต่ใช้การสลับ ทำไม?


11

นี่คือไดอะแกรมของ Munin

การใช้หน่วยความจำ: http://koryagin.com/w/q/memory-day.png

สลับเข้า / ออก: http://koryagin.com/w/q/swap-day.png

เหตุใด Linux จึงตัดสินใจเพิ่มแคชและใช้ swap เมื่อขนาด RAM ใหญ่กว่าหน่วยความจำที่โปรแกรมใช้


2
ระบบย่อย linux VM ในช่วงไม่กี่ปีที่ผ่านมาได้รับการปรับแต่งเพื่อรองรับพื้นที่บัฟเฟอร์และพื้นที่แคช แอปพลิเคชันที่ใช้หน่วยความจำ แต่ไม่ทำอะไรจะได้รับการสับลงดิสก์ สิ่งนี้จะเพิ่มการตอบสนองและประสิทธิภาพ หากคุณไม่เห็นปัญหาด้านประสิทธิภาพคุณไม่จำเป็นต้องกังวลเกี่ยวกับเรื่องนี้
Bart Silverstrim

คำตอบ:


17

เซิร์ฟเวอร์ของคุณอาจมีหน่วยความจำที่กินและ / หรือกระบวนการที่ไม่ได้ใช้งานมีหน้าไม่ได้ใช้งานจำนวนมาก เคอร์เนล Linux ต้องการสลับส่วนที่ไม่ได้ใช้งานของโปรแกรมเพื่อสลับเนื่องจากหน่วยความจำส่วนใหญ่จะใช้แคชได้ดีกว่า

หากคุณต้องการเปลี่ยนพฤติกรรมนี้เล่นด้วยvm.swappinesssysctl ที่ปรับค่าได้ แต่ได้รับคำเตือนการเอาชนะผู้พัฒนาเคอร์เนล / ผู้ดูแลระบบ distroart นั้นไม่ใช่เรื่องง่าย :-)

คุณประสบปัญหาประสิทธิภาพการทำงานบนเซิร์ฟเวอร์ของคุณในระหว่างการแลกเปลี่ยนที่เพิ่มขึ้นหรือคุณถามด้วยความอยากรู้?


ฉันไม่มีปัญหาประสิทธิภาพที่เซิร์ฟเวอร์นี้โดยเฉพาะ แต่ในอีกสถานการณ์หนึ่งที่สถานการณ์ไม่ชัดเจนฉันกำลังคิดเกี่ยวกับสิ่งที่ต้องทำ ตรรกะการจัดการหน่วยความจำ Linux บางอย่างไม่สามารถเป็นเหตุผลสำหรับ PHP-FPM segfaults หากพวกเขาไม่ตรงกับปัญหา PHP ที่รู้จักกันใด ๆ ดังนั้นโดยทั่วไปในความโปรดปรานของความอยากรู้
Pavel Koryagin

BTW เซิร์ฟเวอร์นี้จัดการข้อมูลจำนวนน้อยมากด้วยชุดสคริปต์คงที่ดังนั้นจึงไม่ควรมี I / O อย่างเข้มข้น แล้วทำไมลินุกซ์ถึงต้องการแคชที่ยิ่งใหญ่?
Pavel Koryagin

Linux ใช้แคชไฟล์ข้อมูลเมตาของไฟล์รายการไดเรกทอรีและอื่น ๆ เป็นจำนวนมาก slabtopลองใช้คำสั่ง
Janne Pikkarainen

ขอบคุณมาก. ต้องใช้เวลาสักครู่ในการทำความเข้าใจว่าจะทำอย่างไรกับslabtopข้อมูล
Pavel Koryagin

ปล่อยให้มันวิ่งเต็มหน้าจอเมื่อเจ้านายของคุณเดินผ่านห้องเล็ก ๆ ของคุณและทำให้ตัวเองเป็นกูรูในสายตาของเขา / เธอ :-) คำสั่ง "โอ๊ะอีกอย่างที่แน่ใจว่าดูเข้าใจยาก" อยู่systat -vmstatใน FreeBSD (อาจเป็น BSD อื่น ๆ ด้วย)
Janne Pikkarainen

1

คุณควรลองเล่นกับพารามิเตอร์swappiness เนื่องจากคุณสามารถเห็นระบบของคุณเริ่มสลับเมื่อพยายามเพิ่มขนาดแคชไฟล์นี่เป็นเรื่องปกติถ้า swappines ไม่ใช่ 0

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