Rain WikiWindows · Linux · Android

OOM killer

KonsepSemua distribusi Linux

OOM (out-of-memory) killer adalah bagian dari kernel Linux yang menghentikan suatu proses ketika sistem kehabisan memori dan tidak dapat membebaskan memori apa pun. Kernel memilih proses berdasarkan skor OOM miliknya, yang biasanya merupakan proses yang menggunakan memori terbanyak. Log kernel mencatat setiap penghentian OOM.

1Cara korban dipilih

Setiap proses memiliki skor dalam /proc/<pid>/oom_score yang bertambah seiring dengan penggunaan memorinya. /proc/<pid>/oom_score_adj, dari -1000 hingga 1000, menyesuaikan skor tersebut; -1000 berarti proses tersebut tidak akan pernah dipilih.

2Menemukan penghentian OOM

Kernel menulis 'Out of memory: Killed process' ke dalam log miliknya. journalctl -k | grep -i oom atau dmesg | grep -i oom menampilkan pesan-pesan ini, beserta nama proses dan penggunaan memorinya.

3Pencegahan

Tambahkan memori atau swap, batasi layanan yang memakan banyak memori, atau tetapkan batasan per layanan dengan opsi systemd seperti MemoryMax=. Beberapa distribusi juga menjalankan systemd-oomd, yang bertindak lebih awal berdasarkan tekanan memori.

Cara menyelidiki penghentian OOM

  1. Cari log kernel: journalctl -k | grep -i -A5 'out of memory'
  2. Catat proses yang dihentikan beserta ukuran memorinya.
  3. Periksa memori dan swap saat ini: free -h
  4. Temukan proses terbesar: ps aux --sort=-rss | head
  5. Tambahkan swap atau batasi layanan, lalu amati apakah peristiwa tersebut terulang kembali.

Perhatian

  • Menyetel oom_score_adj ke -1000 untuk banyak proses dapat membuat kernel tidak memiliki pilihan yang aman.
  • Mematikan perlindungan overcommit memori tanpa memahaminya dapat menyebabkan kegagalan di bagian lain.

Sumber

  1. halaman manual proc(5): oom_score dan oom_score_adj man7.org
  2. Pengelolaan Kehabisan Memori (kernel.org) kernel.org

Catatan: RainServer menawarkan pemantauan dan pembersihan yang aman untuk server Linux; server ini menampilkan apa saja yang akan berubah dan meminta konfirmasi terlebih dahulu.

Terakhir ditinjau: