Pada 11.04, /proc/[pid]
berisi oom_score_adj
, tetapi man proc
menggambarkan yang lama oom_adj
. Saya tidak berhasil menelusuri Google untuk informasi tentang cara menggunakan ini.
Yang saya perlu mengatur adalah bahwa proses yang dimulai dengan 'pbs' atau 'gridengine' terbunuh sebelum hal lain terbunuh. Bagaimana saya bisa melakukan itu?
process
memory-usage
bmargulies
sumber
sumber
Jawaban:
Berdasarkan T&J saya sendiri di Unix & Linux pada pertanyaan serupa.
Seperti yang ditunjukkan Stuart dengan sangat baik dalam jawabannya , nilai yang valid adalah bilangan bulat dalam kisaran -1000 hingga 1000
oom_score_adj
. Semakin rendah nilainya, semakin rendah kesempatan untuk dibunuh.Sangat tidak nyaman harus mengubah nilai ini berulang kali setelah Anda me-restart aplikasi. Informasi hilang begitu saja setelah proses berakhir. Pemula (daemon init di Ubuntu), memiliki opsi yang bagus untuk mengonfigurasi daemon untuk memastikannya diset kapan pun dimulai (kembali):
Jadi, pada dasarnya, Anda dapat mengedit
/etc/init/myservice.conf
file konfigurasi untuk layanan yang ingin Anda ubah, untuk menyertakan barisoom score -1000
. Saya berasumsi bahwa layanan 'pbs' atau 'gridengine' yang Anda bicarakan dalam pertanyaan Anda berkemampuan Pemula, jika tidak, Anda akan memerlukan cara lain untuk mengubahnya secara permanen.sumber
Jika Anda dapat memodifikasi skrip start yang menghasilkan proses yang ingin Anda prioritaskan untuk oom-killer, tambahkan berikut ini ke skrip start:
Nilai ini diwarisi untuk proses anak.
sumber
Jika Anda menetapkan nilai tinggi (ish) untuk oom_adj atau oom_score_adj maka mereka akan dibunuh terlebih dahulu. misalnya
oom_adj berubah dari -16 menjadi 15 dan seperti yang disebutkan di atas oom_score_adj menerima -1000 hingga 1000
sumber
sudo sh -c "echo -1000 > /proc/[PID]/oom_score_adj"
Melihat ke dalam kode selalu merupakan ide yang bagus. Biasanya saya menggunakan fungsi pencarian kernel.org, tetapi saat ini sedang down. Github melakukan pekerjaan dengan baik juga. Aku menemukan ini:
Dari https://github.com/mirrors/linux-2.6/commit/a63d83f427fbce97a6cea0db2e64b0eb8435cd10#include/linux/oom.h
sumber
Kami punya choom sekarang.
tl; dr:
choom --adjust -100 myprogram
.Halaman manual memiliki informasi lebih lanjut.
sumber