Cara mendiagnosis penyebab proses pembunuhan oom-killer

9

Saya memiliki server pribadi virtual kecil yang menjalankan CentOS dan www / mail / db, yang baru-baru ini memiliki beberapa insiden di mana server web dan ssh menjadi tidak responsif.

Melihat log, saya melihat bahwa oom-killer telah membunuh proses ini, mungkin karena kehabisan memori dan swap.

Adakah yang bisa memberi saya beberapa petunjuk tentang cara mendiagnosis apa yang mungkin menyebabkan insiden paling baru? Apakah mungkin proses pertama terbunuh? Di mana lagi saya harus mencari?

dunxd
sumber

Jawaban:

11

Tidak, algoritmanya tidak sesederhana itu. Anda dapat menemukan informasi lebih lanjut di:

http://linux-mm.org/OOM_Killer

Jika Anda ingin melacak penggunaan memori, saya sarankan menjalankan perintah seperti:

ps -e -o pid,user,cpu,size,rss,cmd --sort -size,-rss | head

Ini akan memberi Anda daftar proses yang menggunakan sebagian besar memori (dan mungkin menyebabkan situasi OOM). Hapus | headjika Anda lebih suka memeriksa semua proses.

Jika Anda meletakkan ini di cron Anda, ulangi setiap 5 menit dan simpan ke file. Simpan setidaknya dua hari, sehingga Anda dapat memeriksa apa yang terjadi kemudian.

Untuk layanan kritis seperti ssh, saya sarankan menggunakan monit untuk secara otomatis memulai ulang mereka dalam situasi seperti itu. Mungkin menghemat dari kehilangan akses ke mesin jika Anda tidak memiliki konsol jarak jauh untuk itu.

Semoga sukses,
João Miguel Neves

jneves
sumber
Terima kasih - akhirnya mencoba ini setelah beberapa insiden lebih lanjut dari oom-killer membuat server saya bertekuk lutut. Perlu untuk melacak penyebabnya.
dunxd
6

Saya mengalami kesulitan dengan itu baru-baru ini, karena proses yang menginjak oom-killer belum tentu orang-orang yang serba salah. Ketika mencoba mendiagnosis itu, saya belajar tentang salah satu alat favorit saya sekarang, di atas.

Utilitas ini seperti gas steroid. Selama interval waktu yang ditentukan sebelumnya, profil informasi sistem. Anda kemudian dapat memainkannya kembali untuk melihat apa yang terjadi. Ini menyoroti proses yang 80% + berwarna biru dan 90% + berwarna merah. Tampilan yang paling berguna adalah tabel penggunaan memori dari berapa banyak memori yang dialokasikan dalam periode terakhir. Itu yang paling membantu saya.

Alat yang fantastis - tidak bisa mengatakan cukup tentang itu.

di atas monitor kinerja

pboin
sumber
1

Ini artikel tentang penjinakan oom-Kille r terlihat sangat berguna. Sepertinya Anda dapat menetapkan prioritas untuk mencegah pembunuhan massal proses tertentu (sshd akan menjadi awal yang baik untuk VPS!)

dunxd
sumber
1

OOM hanya mematikan proses yang memiliki penggunaan memori terbanyak saat itu. Belum tentu proses yang melampaui batas atau panggilan OOm berduri.
Linux juga lemah dengan alokasi memorinya. AKA jika proses Anda membutuhkan 5gb tetapi hanya menggunakan 3, linux akan membiarkan proses lain menggunakan 2 yang tidak digunakan. kinerja> keandalan. maka ketika p1 membutuhkan 5 penuh itu tidak bisa mendapatkannya

Bukan sebuah kutipan. hanya berurusan dengan ini sendiri dan apa yang saya temukan

angsa
sumber