ฉันคิดว่ามันไม่ใช่ปัญหาที่ผิดปกติ: กระบวนการหนึ่งจัดสรรหน่วยความจำจำนวนมาก (ไม่ว่าจะเกิดจากข้อผิดพลาดของหน่วยความจำรั่วเพราะคุณพยายามประมวลผลไฟล์อินพุตที่มีขนาดใหญ่หรืออะไรก็ตาม) RAM เต็มและบางจุด Linux ต้องสลับเพื่อสลับ ทีนี้บางครั้งมันก็เป็นทางเลือกสุดท้าย: ถ้าฉันมีการคำนวณราคาแพงฉันไม่ต้องการที่จะสูญเสียข้อมูลถ้าในตอนท้ายฉันหมด RAM
อย่างไรก็ตามบ่อยครั้งกว่า (ในประสบการณ์ของฉัน) การใช้หน่วยความจำไม่ได้ จำกัด โดยการโกงอาจกระบวนการรถ นั่นคือฉันไม่ได้จบลงด้วยข้อมูลที่ต้องการน้อยกว่าที่ถูกย้ายไปสับเปลี่ยน แต่ระบบปฏิบัติการถูกบังคับให้สลับโหลดข้อมูลอย่างกะทันหัน และน่าเสียดายที่ไม่เพียง แต่ทำลายกระบวนการที่กระทำผิดกฎหมายอย่างหนัก แต่สามารถนำระบบทั้งหมดมาสู่ความนิ่ง (มันไม่เลวร้ายนักในเครื่องที่ใช้ SSD แต่ OTOH ทำให้ฉันกังวลว่าการเขียนกิกะไบต์และกิกะไบต์ของข้อมูลขยะอาจเป็นไปได้ไหม ระยะยาวเป็นอันตรายต่อเซลล์แฟลช)
จนกว่าฉันจะสังเกตเห็นปัญหาและฆ่ากระบวนการด้วยตนเอง (เมื่อใช้เวลาจริงนาทีจนกระทั่งฉันได้เข้าสู่ระบบเสมือน terminal!) ครึ่งเซสชั่นการทำงานของฉันในการแลกเปลี่ยนและฉันต้องรอสักครู่จนกว่าระบบจะทำงานได้อย่างราบรื่น อีกครั้ง
มีวิธีแก้ไขปัญหา draconic หนึ่งวิธี: บังคับใช้ขีด จำกัด หน่วยความจำฮาร์ด แต่การทำทั้งระบบนี้บางครั้งจะทำให้กระบวนการที่ฉันต้องการอยู่นิ่งและถ้าฉันต้องทำเองulimit
ก่อนที่จะเริ่มขั้นตอนการละเมิด ... ดีฉันมักจะลืมจนกว่ามันจะสายเกินไป
วิธีแก้ปัญหาที่เป็นไปได้ที่ฉันมีความสุขมากขึ้น:
- หากกระบวนการใดเกินกว่าการใช้งานหน่วยความจำที่แน่นอนก็จะลดปริมาณลงอย่างผิดเพี้ยนเพื่อให้ระบบส่วนที่เหลือตอบสนองได้
- หากกระบวนการใดเกินกว่าการใช้หน่วยความจำที่แน่นอนก็เป็น
SIGSTOP
เหตุให้ฉันมีเวลาคิดออกว่าจะทำอย่างไรต่อไป - หากกระบวนการเข้าใกล้ขีด จำกัด RAM ฉันจะได้รับคำเตือนก่อนที่การแลกเปลี่ยนจะเริ่มขึ้น
มีวิธีใดบ้างที่จะรับพฤติกรรมเช่นนี้หรือคล้ายกัน?
ulimit
สำหรับ