Uygulama çökmelerinde (Java JVM, Node.js, PHP, MySQL) Linux çekirdeğinin disk kök dizinini (/) yüzde 100 doldurarak sunucuyu kilitlemesini önleyin; MaxUse, KeepFree sınırları ve otomatik tmpfiles temizleme kuralları üretin.
GDB ile analiz yapilmayan uretim sunucularinda 'none' diski ve bellek guvenligini tam korur.
Kalan disk bu degerin altina indiginde coredump hemen reddedilir.
Tum crash dosyalarinin toplam diskte kaplayabilecegi ust sinir.
Java veya MySQL gibi devasa bellekli sureclerin tek bir dump ile diski sisirmesini onler.
systemd-tmpfiles kuraliyla bu sureden eski dumplar silinir (varsayilan 30 gun yerine).
external
Kontrollu saklama5 GB
Diskin %10'si10 GB
Diskin %20'si rezerve3 Gun
tmpfiles.d ile otomatik purgeDosya konumu: /etc/systemd/coredump.conf.d/99-storage-guard.conf
# /etc/systemd/coredump.conf.d/99-storage-guard.conf # Linux systemd-coredump disk doluluk koruma yapilandirmasi [Coredump] Storage=external Compress=yes MaxUse=5G KeepFree=10G ProcessSizeMax=2G ExternalSizeMax=2G JournalSizeMax=500M
Dosya konumu: /etc/tmpfiles.d/coredump-retention.conf
# /etc/tmpfiles.d/coredump-retention.conf # /var/lib/systemd/coredump dizinindeki dosyalari 3 gun sonra otomatik temizle d /var/lib/systemd/coredump 0755 root root 3d
sudo mkdir -p /etc/systemd/coredump.conf.d /etc/tmpfiles.d sudo tee /etc/systemd/coredump.conf.d/99-storage-guard.conf << 'EOF' # /etc/systemd/coredump.conf.d/99-storage-guard.conf # Linux systemd-coredump disk doluluk koruma yapilandirmasi [Coredump] Storage=external Compress=yes MaxUse=5G KeepFree=10G ProcessSizeMax=2G ExternalSizeMax=2G JournalSizeMax=500M EOF sudo tee /etc/tmpfiles.d/coredump-retention.conf << 'EOF' # /etc/tmpfiles.d/coredump-retention.conf # /var/lib/systemd/coredump dizinindeki dosyalari 3 gun sonra otomatik temizle d /var/lib/systemd/coredump 0755 root root 3d EOF sudo tee /etc/sysctl.d/99-coredump-protection.conf << 'EOF' # /etc/sysctl.d/99-coredump-protection.conf # SUID/SGID sureclerin ve bellek dokumlerinin guvenligi fs.suid_dumpable = 0 EOF sudo sysctl --system sudo systemctl daemon-reload
Diskiniz %100 dolduysa aninda coredump alanini bosaltmak icin calistirin:
# Aninda disk alani bosaltma (Acil durum) sudo rm -rf /var/lib/systemd/coredump/* sudo systemd-tmpfiles --clean
Mevcut cokmelerin listesini ve disk tuketimini gormek icin:
# Kaydedilmis core dump listesi ve dosya boyutlari coredumpctl list # Coredump dizininin diskte kapladigi gercek alan du -sh /var/lib/systemd/coredump # systemd-coredump yapilandirma durumunu kontrol etme systemctl status systemd-coredump.socket
Modern Linux dağıtımlarında (Ubuntu 24.04/22.04, Debian 12, RHEL 9/AlmaLinux 9) systemd-coredumpvarsayılan olarak etkindir. Bellekte 16 GB veya 32 GB alan kaplayan bir Java/JVM uygulaması, Node.js worker'ı veya veritabanı süreci segfault vererek çöktüğünde çekirdek tüm sanal belleğin dökümünü/var/lib/systemd/coredump/ dizinine yazar.
Eğer bir servis çökme döngüsüne (crash loop) girerse, birkaç dakika içinde onlarca gigabaytlık core dump dosyası üretilir ve kök dosya sistemi (root partition) %100 dolar. Disk tamamen dolduğunda:
MaxUse parametresi, core dump dosyalarının toplamda tüketebileceği mutlak disk sınırını (örneğin 5 GB) belirler.KeepFree ise kök diskte her halükarda serbest bırakılması zorunlu alanı (örneğin 10 GB) garanti eder. Kalan disk bu sınırın altına düştüğü an çekirdek yeni dump dosyası yazmayı derhal reddeder ve sunucunun çökmesini engeller.
Canlı üretim (production) web ve API sunucularında çekirdek dökümlerinin analizi GDB ile yapılmıyorsa en güvenli ve performanslı yöntem Storage=noneve ProcessSizeMax=0 tanımlayarak özelliği tamamen kapatmaktır. Bu sayede hem disk alanı sıfır risk altında kalır hem de bellek dökümlerinde yer alabilecek hassas veritabanı şifreleri veya API anahtarlarının diske düz metin yazılması önlenir.