Bellek Yetersiz mesajı nedir: çocuğu feda et?


20

Bilgisayarım kısa bir süre önce bellek tüketti (büyük CBS veri kümeleriyle çalışırken yazılım derlemenin beklenmedik bir sonucu). OOM koşulu ile nasıl başa çıkıldığını detaylandıran sistem günlüğünde aşağıdaki satır vardır:

Out of memory: Kill process 7429 (java) score 259 or sacrifice child

Bu ne or sacrifice childhakkında? Elbette, işleri sürdürmek için karanlık bir ritüel düşünmüyor musunuz?

Yanıtlar:


8

Oom Katili bulduğum kaynak dosyalardan , OOM Killer, sistem günlüğüne böyle bir mesaj yazıldıktan sonra, tanımlanan sürecin çocuklarını kontrol eder ve mümkünse sürecin kendisinden birini öldürmek için değerlendirir.

Burada, bunu açıklayan kaynak dosyadan çıkarılan bir yorum:

/*
 * If any of p's children has a different mm and is eligible for kill,
 * the one with the highest oom_badness() score is sacrificed for its
 * parent.  This attempts to lose the minimal amount of work done while
 * still freeing memory.
 */

Bunu Firefox (Web İçeriği) için de yapar.
neverMind9

2

Sinyal gönderilmesi için aday gösterilen sürecin alt sürecini öldürmekten bahsediyor KILL.


2
Fakat bu ne anlama geliyor ? Ebeveynin kendisini kurtarmak için bir çocuğu "feda edebileceği" bir yöntem var mı?
Thanatos

Benim tahminim, sadece bir tahmin, tüm süreç Linux init sürecinin torunları olduğundan, bu bağlamda ebeveynin çocukların çeşitli uygulamalar olduğu bir Linux süreci olduğu. Bu durumda, Linux süreci çocuklarından birini öldürerek kendini kurtarıyor.
Seamus

0

Bu Oom (Bellek yetersiz) katil. Sisteminizin belleği dolduğunda, linux çekirdeği belleği boşaltmak için işlemleri öldürür. Sezgisel tarama, sisteme zarar vermeden hafızayı boşaltmak için hangi sürecin en iyi aday olduğunu belirler (tipik olarak kök sahip olunan süreçler en iyi aday değildir).

Daha fazla ayrıntı burada: OOM katili ilk önce hangi işlemi öldüreceğine nasıl karar verir?


4
Ancak bu mesajın "veya çocuğu feda etme" kısmını açıklamaz.
Mark
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.