Yetersiz bellek işleyici erken sürüm 1.4

Sekiz aylık geliştirme sürecinin ardından yayınlanan arka plan süreci sürümü erken oda 1.4, kullanılabilir bellek miktarını (MemAvailable, SwapFree) periyodik olarak kontrol eder ve bellek yetersizliği oluşumuna erken bir aşamada yanıt vermeye çalışır. Proje kodu C dilinde yazılmıştır ve tarafından dağıtıldı MIT lisansları altında.

Kullanılabilir bellek miktarı belirtilen değerden azsa, Earlyoom zorla (SIGTERM veya SIGKILL göndererek) belleği en aktif şekilde tüketen (en yüksek /proc/*/oom_score değerine sahip) işlemi, sistem durumunu sistem arabelleklerini temizlemeye ve takasa müdahale etmeden (çekirdekteki OOM (Bellek Dolu) işleyicisi, yetersiz bellek durumu zaten kritik değerlere ulaştığında tetiklenir ve genellikle bu noktada sistem artık yanıt vermez) eylemler kullanıcı).

Earlyoom, masaüstüne zorla sonlandırılan işlemlerle ilgili bildirimlerin gönderilmesini destekler (notify-send kullanarak) ve ayrıca, normal ifadeler kullanarak, sonlandırılması tercih edilen işlemlerin adlarını belirtebileceğiniz kuralları tanımlama yeteneği sağlar ("-) -tercih et” seçeneği) veya durdurulmalıdır (“-kaçın” seçeneği).

Ana değişiklikler yeni sürümde:

  • Pahasına yavaş yüklenme süreç nitelikleri, tamamlanacak süreçleri seçme mantığı %50 hızlandırıldı;
  • Sonlandırılan işlemin UID'si, PID ve işlem adına ek olarak günlüğe yansıtılır;
  • Hata ayıklama günlüğünün açık gri renkte vurgulanması eklendi;
  • Kodu temizledim;
  • Mümkün olduğunda blok-yerel değişkenler bildirildi;
  • Kodda yerleşik arabellek boyutu değerini değiştirmek için PATH_LEN ayarı eklendi;
  • Kullanılabilir olduğunda cppcheck'in başlatılmasını sağlar;
  • "Make bench" performans testi eklendi;
  • Test seti genişletildi (test yapın);
  • Systemd Earlyoom.service birim dosyasında kök ayrıcalıklarının sıfırlanması uygulandı. Bu bir değişiklik molalar GUI bildirimlerinin olasılığı. GUI bildirimlerini etkinleştirmek için “DynamicUser=true” açıklamasını kaldırarak kök haklarının döndürülmesi önerilir. Root'u da devre dışı bırakmak приводит /proc'u hidepid=1 veya hidepid=2 modunda bağlarken bellek tüketimi hakkında bilgi alınamamasına.

Kaynak: opennet.ru

Yorum ekle