Burada OOM-Killer'in şu şekilde yapılandırılabileceği overcommit_memory
ve aşağıdakilerin açıklandığı açıklanmaktadır :
- 2 = fazla taahhüt yok. Çok fazla sorulması halinde tahsisler başarısız olur.
- 0, 1 = aşırı taahhüt (sezgisel olarak veya her zaman). Çok fazla belleğe gerçekten erişildiğinde, bazı sezgisel tarama temelli bazı işlemleri öldürün .
Şimdi, bunu tamamen yanlış anlayabilirim, ama neden tahsis edilen çok fazla belleğe erişmeye çalışan süreci öldürmek için bir seçenek (veya neden varsayılan değil) yok?
Kritik bir sistem işlemi çok fazla bellek isterse ne olur?
—
Lawrence
İlk olarak - bu şeyi yapabilir . Ama, bu soruyla en büyük sorun büyük ihtimalle bir süreç ise yani soran bellek için o zaman ediliyor yeni veya başka bir deyişle, bu çok geçerli işleme katılan yeni bir süreç olduğunu - idam. OOM, 3 gün boyunca açılmayan im istemcinizin sistem belleğini boşa harcamasına izin vermeyi mi tercih edersiniz yoksa YouTube'un bu yıl biraz zaman yüklemesini mi tercih edersiniz? linuxatemyram.com
—
mikeserv
Bu nedir
—
Barmar
no overcommit
seçenek aslında yok. Bir işlem çok fazla bellek isterse başarısız olur. Hatayı kontrol ederse, genellikle kendini öldürür; eğer dönmezse, malloc()
döndüren boş göstergenin atılmasını denediğinde muhtemelen bir Segmentasyon Hatası alır ve çökecektir .
no overcommit
Belirtilen kaynaklara göre ( kernel.org/doc/Documentation/vm/overcommit-accounting gibi ) 2'nin aslında mod olduğunu unutmayın . Sanırım sorunuzu buna göre düzenleyeceğim.