Sunucu yönetiminde karşılaşılan en kritik sorunlardan biri, OOM (Out of Memory) Killer hatasıdır. Bu hata, sistem belleği tamamen tükendiğinde ve Linux çekirdeğinin kriti̇k uygulamaları veya işlemleri koruma altına almak için RAM’den bazı süreçleri sonlandırmasıyla ortaya çıkar. Özellikle VDS (Virtual Dedicated Server) ortamlarında, yüksek trafik veya bellek sızıntıları sonucu bu durumla sıkça karşılaşmak mümkündür.
İlk aşamada, OOM hatasını tespit etmek için sistem günlüklerine bakmak gerekir.
dmesg veya
journalctl komutlarıyla, hangi işlemin veya sürecin RAM’i tükettiğine ulaşabilirsiniz. Örneğin:
1dmesg | grep -i 'Out of memory'
Bununla beraber, hangi süreçlerin RAM kullanımını detaylı görmek için
top veya
htop komutlarını kullanabilirsiniz. Burada, yüksek bellek tüketen işlemleri tespit ederek gerekirse sonlandırmak veya limit koymak gerekebilir.
Bir diğer önemli nokta, sistemdeki
swappiness ayarını optimize etmek. Swappiness, Linux’un bellek yönetiminde disk swap kullanımını belirler. Bu değeri düşürmek, RAM dolduğunda disk swap’a geçişi geciktirerek OOM riskini azaltabilir. Örneğin:
Ayrıca,
ulimit ve cgroups kullanarak süreç bazında bellek sınırları belirlemek, sistemdeki bellek kullanımını kontrol altında tutmaya yardımcı olur. Örneğin, cgroups ile belli bir uygulama veya kullanıcı grubu için maksimum bellek limiti koymak, OOM hatasını önleyebilir.
En etkili kalıcı çözüm ise, sistemde gereksiz veya yüksek bellek tüketen uygulamaları optimize etmek veya kaldırmaktır. Ayrıca, yeterli RAM ve swap alanı ayarlamak, kaynakları doğru yönetmek, OOM hatasının önüne geçmek açısından kritik önemdedir.
Son olarak, sistemdeki OOM Killer konfigürasyonunu inceleyip, kritik süreçleri koruma altına almak veya önceliklendirmek mümkündür. Bu, /etc/oom_adj veya /proc/$(pid)/oom_score_adj dosyalarını düzenleyerek yapılabilir. Bu sayede, belirli uygulamaların OOM durumunda sonlandırılmasını engelleyebilirsiniz.
Tüm bu adımlar, SSH üzerinden VDS yönetiminde OOM hatasını tespit edip, kalıcı ve etkili bir şekilde çözmek için temel yöntemlerdir. Sistem kaynaklarını etkin kullanmak ve doğru ayarları yapmak, bu tür krizleri minimal seviyeye indirir.