การดำน้ำเข้ามาapt-check
ทำให้ฉันรู้เบาะแสเหล่านี้เพราะมันเป็นสคริปต์ที่ไม่มีความจำเป็นต้องแก้ไข ด้วยความเคารพจากผู้เขียนมันก็ล้มเหลวบนเซิร์ฟเวอร์ของฉัน นี่คือความคิดของฉัน:
apt-check
== /usr/lib/update-notifier/apt_check.py
- กองกำลัง nicelevel 19 สำหรับตัวเอง
- ไม่มีการตั้งค่าการหมดเวลากับการกระทำ
การรวมกันของทั้งสองที่ผ่านมาช่วยให้กองพะเนินเทินทึกในเกลียวลง หากระบบใช้เพื่อวัตถุประสงค์อื่นที่มีลำดับความสำคัญสูงกว่าจำนวนของกระบวนการจะเพิ่มขึ้นและจะไม่มีที่สิ้นสุดเพราะapt-check
จะไม่มีความสำคัญมากกว่านั้น ปัญหาจะเลวร้ายยิ่งขึ้นเมื่อนักฆ่า OOM ตัดสินใจฆ่ากระบวนการสำคัญของระบบ
หากพฤติกรรมสองอย่างใดอย่างหนึ่งเหล่านี้แตกต่างกันมันจะไม่อนุญาตให้ระบบสิ้นสุดลงในสภาพที่ไม่สมบูรณ์เช่นนี้คือข้อสันนิษฐานของฉัน
ในขณะที่สตริงนั้นถูกต้องเกี่ยวกับกระบวนการหลักที่รับผิดชอบในเรื่องนี้เช่นกันฉันเชื่อว่าจุดด้านล่างเป็นข้อบกพร่องapt-check
และต้องได้รับการรายงานว่าเป็นจุดบกพร่องเพื่อให้ได้รับการแก้ไขอย่างถูกต้อง:
- ควรให้คำใบ้ว่านักฆ่า OOMต้องฆ่าตัวตายเสียก่อน
- ไม่ควรตั้งค่านิโคเนลฮาร์โค้ด
- ควรออกหากใช้เวลาในการรับข้อมูลที่ไม่สมเหตุสมผล
ที่จริงแล้วดูเหมือนว่านักฆ่า Linux OOM กำลังทำการแก้ไขปัญหานี้อยู่ กระบวนการที่ผ่านเกณฑ์จะได้รับคะแนนเพิ่มขึ้นและกระบวนการที่ใช้เวลานานจะลดลง (ที่มา - ขอบคุณUlrich Dangelสำหรับการชี้ให้เห็น )
ทางออกที่เป็นไปได้ฉันอาจเสนอ:
- ผลลัพธ์แคชหลังจากการประมวลผล
- เอาต์พุตแคชหากน้อยกว่า N จำนวนวินาทีโดยไม่โหลดไลบรารี Python-APT ทั้งหมดสำหรับการเรียกใช้ (แม้แต่
--help
) อย่างง่าย
- ทำการกำหนดค่า nicelevel - อนุญาตให้ฉันเปลี่ยน / ปิดการใช้งานนี้ได้โปรด! ฉันเชื่อว่าการตั้งค่าเป็น 0 จะช่วยได้จริง
- มันเพิ่มคะแนน OOM killer หรือไม่