Beberapa orang apt-check
memberi saya petunjuk ini karena merupakan skrip yang sangat tumpul yang perlu diperbaiki. Dengan segala hormat kepada penulisnya, ini gagal pada server saya. Inilah pikiran saya:
apt-check
== /usr/lib/update-notifier/apt_check.py
- memaksa nicelevel 19 untuk dirinya sendiri
- tidak ada batas waktu yang ditetapkan pada tindakan
Kombinasi dua yang terakhir memungkinkannya menumpuk tanpa henti dalam spiral ke bawah. Jika sistem digunakan untuk tujuan lain dengan prioritas lebih tinggi, jumlah proses hanya akan meningkat dan tidak ada akhirnya, karena apt-check
tidak akan pernah mendapatkan prioritas apa pun darinya. Masalah hanya akan bertambah buruk begitu pembunuh OOM memutuskan untuk membunuh proses sistem vital Anda.
Jika salah satu dari dua aspek dalam perilaku ini berbeda, itu tidak akan membiarkan sistem berakhir dalam keadaan rusak seperti itu adalah asumsi saya.
Sementara string benar tentang proses induk yang bertanggung jawab dalam hal ini juga, saya percaya poin di bawah ini adalah cacat apt-check
dan harus dilaporkan sebagai bug untuk ditangani dengan benar:
- itu seharusnya mengisyaratkan pembunuh OOM untuk dirinya sendiri terbunuh terlebih dahulu
- seharusnya tidak mengatur hardcode nicelevel
- itu harus keluar jika dibutuhkan jumlah waktu yang tidak masuk akal untuk mendapatkan informasi
Sebenarnya, tampaknya pembunuh OOM Linux melakukan beberapa heuristik pada ini. Proses Niced akan mendapatkan skor yang meningkat, dan proses yang berjalan lama berkurang. ( sumber - terima kasih kepada Ulrich Dangel karena menunjukkannya )
Solusi yang mungkin saya usulkan:
- hasil cache setelah diproses
- cache keluaran jika kurang dari N jumlah detik tanpa memuat semua pustaka Python-APT untuk setiap
--help
pemanggilan yang sederhana ( datar).
- buatlah nicelevel dapat dikonfigurasi - Izinkan saya untuk mengubah / menonaktifkan ini! Saya percaya bahwa pengaturan ke 0 akan benar-benar membantu
- memilikinya meningkatkan skor pembunuh OOM