OOM killer
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
- Cari log kernel:
journalctl -k | grep -i -A5 'out of memory' - Catat proses yang dihentikan beserta ukuran memorinya.
- Periksa memori dan swap saat ini:
free -h - Temukan proses terbesar:
ps aux --sort=-rss | head - 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.
Artikel terkait
- Ruang swap di LinuxApa itu swap, cara melihatnya dengan free dan swapon, cara menambahkan file swap, dan apa yang diubah oleh vm.swappiness.
- Rata-rata bebanArti dari ketiga angka rata-rata beban, hubungannya dengan inti CPU, dan kapan beban tinggi menjadi masalah.
- journalctl dan systemd journalCara membaca log dengan journalctl, memeriksa kapasitas penyimpanan yang digunakan journal, dan mengosongkannya secara aman menggunakan opsi --vacuum.
Sumber
- halaman manual proc(5): oom_score dan oom_score_adj man7.org
- 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: