OOM-Killer menelepon sesekali


5

Saya memiliki server khusus tempat saya menginstal apache2, juga rails-passenger. Walaupun saya memiliki 2GB RAM dan sebagian besar kali sekitar 1,5GB gratis, ada beberapa waktu acak di mana saya kehilangan sshdan konektivitas generik karena oom-killermembunuh proses.

Saya kira ada kebocoran memori tetapi saya tidak bisa mengetahui dari mana asalnya. oom-killermembunuh apache2, mysql, passengerdan apa pun.

Kemarin, saya melakukan cat syslog | grep -c oom-killerdan mendapatkan 57 kejadian!

Tampaknya ada sesuatu yang serius menghancurkan ingatan. Setelah saya reboot, semuanya kembali normal. Saya curiga ini bisa berhubungan passenger, tapi saya masih mencoba mencari tahu.

Dapatkah Anda memikirkan penyebab lain, atau apakah Anda memiliki sesuatu untuk disarankan yang akan membuat prosedur identifikasi kebocoran lebih mudah? Aku bahkan berpikir untuk menulis skrip bash, untuk dijalankan cronsetiap 5 menit.


Ya, sampai Anda menjalankan skrip yang menunjukkan proses mana yang sedang tumbuh, kapan, dan seberapa cepat, itu bukan pertanyaan yang bisa dijawab.
SilverbackNet

Jawaban:


1

Kernel Linux secara default memori overcommit sehingga kadang-kadang sebuah program akan berhasil mengalokasikan memori tidak tersedia dan OOM akan menendang dan membunuh proses acak sebagai gantinya. Menonaktifkan ini mungkin akan memungkinkan Anda mengidentifikasi aplikasi apa yang mencuri memori. Misal, jika suatu aplikasi tiba-tiba mengalokasikan sejumlah besar memori, aplikasi itu akan gagal (dan semoga mengembalikan pesan kesalahan). Aplikasi lain mungkin gagal mengalokasikan memori juga sehingga Anda harus berhati-hati terhadap false positive.

gema 2> / proc / sys / vm / overcommit_memory

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.