ฉันใช้ Debian sid, ฮาร์ดไดรฟ์ที่ฟอร์แมตด้วย ext4, ทำงานบน linux 3.1
ฉันจำรุ่นก่อนหน้าของ linux (อาจจะก่อนหน้า 3.0) หากฉันมีหน่วยความจำไม่เพียงพอและไม่ได้เปิดใช้งาน swap โปรแกรมมักจะทำงานผิดพลาด สิ่งนี้เหมาะสำหรับสภาพแวดล้อมของฉัน: การท่องเว็บอย่างง่าย ๆ โดยไม่มีการดำเนินการที่สำคัญ นั่นคือถ้าฉันบังเอิญวิ่งข้ามเว็บไซต์ที่ไม่ดีซึ่งใช้หน่วยความจำมากเกินไปมันก็จะขัดข้องโดยไม่แสดงผลเทอร์มินัลของฉัน
แต่ในการตั้งค่าปัจจุบันของฉันคอมพิวเตอร์แฮงค์ด้วยปริมาณข้อมูล I / O ที่รุนแรงในพื้นหลัง iotop เผย kswapd0 เป็นผู้ร้ายซึ่งหมายความว่าเกิดจากการแลกเปลี่ยน หลังจากใช้swapon -s
เพื่อกำหนด swaps ใด ๆ ที่เปิดใช้งานฉันใช้swapoff -a
เพื่อปิดใช้งาน swaps ทั้งหมดและswapon -s
อีกครั้งเพื่อยืนยันว่า swaps ทั้งหมดถูกปิดใช้งาน
จากนั้นฉันพยายามเพิ่มการใช้หน่วยความจำให้สูงสุดอีกครั้ง อนิจจาพฤติกรรมที่ฉันคาดไว้ไม่ได้เกิดขึ้น kswapd0 จะพยายามแลกเปลี่ยน RAM ซ้ำและล้มเหลวเนื่องจากไม่มีพื้นที่สว็อป เพราะมันไม่เคยยอมแพ้คอมพิวเตอร์ของฉันถูกล็อคด้วยการแช่แข็ง I / O ชั่วนิรันดร์ซึ่งไม่ดีต่อสุขภาพของดิสก์
ฉันกำลังทำอะไรผิดไปswapoff -a
หรือเปล่า? เหตุใดพฤติกรรมต่างจากที่เคยเป็น (อาจเป็น pre-3.0 เท่า)
fstab
บรรทัดเกี่ยวกับการแลกเปลี่ยน ลองถ้าพฤติกรรมเหมือนกัน
swapoff -a
ควรปิดใช้งานการสลับอย่างถาวรหมายความว่าควรปิดการใช้งานหลังจากรีบูตครั้งถัดไป ฉันยืนยันสิ่งนี้ กระนั้น I / O "พายุ" ยังคงเกิดขึ้นในระหว่างการใช้งานหลังจากรีบูตครั้งถัดไป สำหรับบันทึก I / O "storm" ไม่ได้เกิดขึ้นในขณะที่ฉันทำswapoff -a
เพราะ swap เป็น 0 ในเวลานั้น
swapoff -a
คือไม่ถาวร
swapoff -a
เองหากมีสิ่งต่าง ๆ ในการแลกเปลี่ยนจะสร้าง I / O จำนวนมาก (และอาจส่งผลให้กระบวนการถูกฆ่าได้หากมี RAM ไม่เพียงพอจริง) คุณแน่ใจหรือว่าไม่ใช่สิ่งswapoff -a
ที่ก่อให้เกิด I / O "storm"