ฉันมีแล็ปท็อป Debian (Buster) ที่มี8 GB RAM และ 16GB swap ฉันกำลังทำงานที่ใช้เวลานานมาก นี่หมายความว่าแล็ปท็อปของฉันถูกทิ้งไว้ในช่วงหกวันที่ผ่านมาในขณะที่มันปั่นผ่าน
ขณะทำสิ่งนี้ฉันต้องใช้แล็ปท็อปเป็นระยะเป็นระยะ นี่ไม่ควรเป็นปัญหา งานที่ใช้เวลานานคือ I / O ที่ถูกผูกไว้ทำงานผ่านสิ่งต่างๆบนฮาร์ดดิสก์ USB และไม่ใช้ RAM (<200 MB) หรือ CPU (<4%) มากนัก
ปัญหาคือเมื่อฉันกลับมาที่แล็ปท็อปของฉันหลังจากนั้นไม่กี่ชั่วโมงมันจะซบเซามากและอาจใช้เวลา 30 นาทีเพื่อกลับมาเป็นปกติ นี่เป็นสิ่งที่แย่มากที่ผู้ตรวจสอบความผิดพลาดติดธงทำเครื่องหมายแอปพลิเคชันของตนว่าค้าง (โดยเฉพาะหน้าต่างเบราว์เซอร์) และสิ่งต่าง ๆ เริ่มทำงานผิดพลาดอย่างไม่ถูกต้อง
เมื่อดูจากการตรวจสอบระบบของ 2.5 GB ที่ใช้ประมาณครึ่งหนึ่งจะถูกเปลี่ยนเป็นการสลับ ฉันยืนยันว่าปัญหานี้เกิดจากการลบพื้นที่สว็อป ( swapoff /dev/sda8
) ถ้าฉันทิ้งไว้โดยไม่มีพื้นที่สว็อปมันจะกลับมามีชีวิตอีกครั้งในทันทีแม้หลังจากผ่านไป 24 ชั่วโมง ด้วยการแลกเปลี่ยนมันเป็นอิฐในช่วงห้านาทีแรกที่เหลือเพียงหกชั่วโมง ฉันยืนยันว่าการใช้หน่วยความจำไม่เกิน3 GBแม้ในขณะที่ฉันไม่อยู่
ฉันได้พยายามลดความไม่แน่นอน ( ดูเพิ่มเติมที่: Wikipedia ) เป็นค่าของ10
และ0
แต่ปัญหายังคงมีอยู่ ดูเหมือนว่าหลังจากไม่มีกิจกรรมใด ๆ หนึ่งวันเคอร์เนลเชื่อว่า GUI ทั้งหมดไม่จำเป็นต้องใช้อีกต่อไปและจะทำการลบจาก RAM (สลับไปยังดิสก์) ภารกิจที่ใช้เวลานานคืออ่านไฟล์ทรีขนาดใหญ่และอ่านไฟล์ทุกไฟล์ ดังนั้นอาจเป็นเพราะเคอร์เนลสับสนในการคิดว่าการแคชจะช่วยได้ แต่ในการกวาดล้างเพียงหนึ่งเดียวของ HD TB USB 2 TB ที่มีชื่อไฟล์ประมาณ 1 พันล้านแรม GB พิเศษนั้นจะไม่ช่วยประสิทธิภาพมากนัก นี่คือแล็ปท็อปราคาถูกที่มีฮาร์ดไดรฟ์ซบเซา มันไม่สามารถโหลดข้อมูลกลับสู่ RAM เร็วพอ
ฉันจะบอก Linux ให้ใช้พื้นที่สลับในกรณีฉุกเฉินได้อย่างไร ฉันไม่ต้องการวิ่งโดยไม่มีการสลับ หากสิ่งที่ไม่คาดคิดเกิดขึ้นและทันใดนั้นระบบปฏิบัติการก็ต้องการ GB เพิ่มอีกเล็กน้อยฉันไม่ต้องการให้งานถูกฆ่าและอยากเริ่มใช้ swap แต่ในตอนนี้ถ้าฉันปล่อยให้เปิดใช้งานแล็ปท็อปของฉันก็ไม่สามารถใช้งานได้เมื่อฉันต้องการ
คำจำกัดความที่แม่นยำของ "ฉุกเฉิน" อาจเป็นเรื่องของการถกเถียง แต่เพื่ออธิบายให้ชัดเจนว่าฉันหมายถึงอะไร: เหตุฉุกเฉินจะเป็นที่ที่ระบบทิ้งไว้โดยไม่มีตัวเลือกอื่นนอกจากแลกเปลี่ยนหรือฆ่ากระบวนการ
เหตุฉุกเฉินคืออะไร - คุณต้องถามจริง ๆ หรือไม่? ... ฉันหวังว่าคุณจะไม่พบว่าตัวเองอยู่ในอาคารที่คึกคัก!
ฉันไม่สามารถกำหนดทุกสิ่งที่อาจเป็นเหตุฉุกเฉินในคำถามนี้ แต่สำหรับตัวอย่างเช่นกรณีฉุกเฉินอาจจะเมื่อเคอร์เนลจะผลักดังนั้นสำหรับหน่วยความจำที่จะได้เริ่มต้นกระบวนการฆ่ากับOOM นักฆ่า ฉุกเฉินไม่ใช่เมื่อเคอร์เนลคิดว่าสามารถปรับปรุงประสิทธิภาพได้โดยใช้การสลับ
การแก้ไขครั้งสุดท้าย: ฉันยอมรับคำตอบซึ่งทำสิ่งที่ฉันขออย่างแม่นยำในระดับระบบปฏิบัติการ ผู้อ่านในอนาคตควรจดคำตอบที่เสนอโซลูชันระดับแอปพลิเคชันด้วย