
Disk doldu uyarısı geldi. Site dosyalarınız birkaç yüz megabayt, veritabanı da öyle. Peki kalan onlarca gigabaytı ne tüketiyor?
Bu yazı, sunucularda sessizce biriken geçici dosyaları ve bunların nasıl yönetileceğini ele alıyor.
Alan Nereye Gidiyor?
Disk doluluğunun tipik kaynakları, boyut sırasına göre değil fark edilme zorluğuna göre:
| Kaynak | Tipik davranış |
|---|---|
| Uygulama günlükleri | Sürekli büyür, döndürülmezse patlar |
| Oturum dosyaları | Temizlenmezse milyonlarca dosya |
| Önbellek dizinleri | Sınırsızsa sürekli şişer |
| Yarım kalan yüklemeler | Kimse silmez |
| Eski yedek dosyaları | Yerelde unutulur |
| Paket yöneticisi önbelleği | Her güncellemede büyür |
| Silinmiş ama açık dosyalar | Görünmez alan tüketimi |
Son satır en kafa karıştırıcı olanıdır ve ayrı bir bölümü hak eder — silinmiş bir dosya, bir süreç onu hâlâ açık tutuyorsa diskten gerçekten kaldırılmaz.
Görünmez Alan Tüketimi
Şu senaryo sık yaşanır ve teşhisi zordur:
- Büyük bir günlük dosyası diski doldurur
- Dosya silinir
- Ancak boş alan geri gelmez
- Dizin listelemede dosya görünmez
- Yine de disk dolu raporlanır
Nedeni şudur: dosyayı yazan süreç hâlâ çalışıyorsa, dosya tanıtıcısı açık kaldığı sürece alan serbest bırakılmaz.
Çözüm dosyayı tekrar silmek değil, ilgili servisi yeniden başlatmak veya günlük dosyasını uygun yöntemle döndürmektir. Bu davranışı bilmeyen yöneticiler saatlerce boşa arama yapar.
Teşhis Yaklaşımı
Doluluk kaynağını bulmak için izlenecek sıra:
- Bölüm bazında doluluğa bakın. Hangi bölüm dolu?
- Dizin bazında yukarıdan aşağı inin. En büyük dalı takip edin.
- Dosya sayısını da kontrol edin. Alan değil dosya sayısı dolabilir.
- Silinmiş açık dosyaları listeleyin. Görünmez tüketim varsa.
- Son değişiklik tarihlerine bakın. Ne zaman başladı?
Üçüncü madde ayrı bir sorun sınıfına işaret eder: disk alanı boş görünürken sistem "yer yok" hatası veriyorsa, dosya sayısı sınırına takılmışsınızdır.
Bu genellikle oturum dosyalarından veya küçük önbellek parçalarından kaynaklanır — milyonlarca küçük dosya, az yer kaplasa da dosya sayısı sınırını doldurur.
Günlük Yönetimi
En yaygın disk tüketicisi günlüklerdir ve çözümü standarttır:
- Döndürme kuralı tanımlayın. Boyut veya süre bazlı.
- Sıkıştırma açın. Eski günlükler çok iyi sıkışır.
- Saklama süresi belirleyin. Sonsuza kadar tutmayın.
- Uygulama günlüklerini de dahil edin. Sistem günlükleri tek kaynak değil.
- Hata ayıklama seviyesini kapatın. Üretimde gereksiz hacim üretir.
Dördüncü madde en sık atlanan noktadır: sistem günlükleri düzgün yönetilirken, uygulamanızın kendi yazdığı günlük dosyası hiçbir kurala tabi olmayabilir.
Beşinci madde ise hızlı bir kazanç sağlar. Hata ayıklama seviyesinde çalışan bir uygulama, normalin onlarca katı günlük üretir ve bu genellikle geliştirme sırasında açılıp kapatılması unutulmuş bir ayardır.
Oturum ve Önbellek Dosyaları
Bu iki kategori sessizce büyür çünkü kimse onlara bakmaz:
- Oturum dosyaları otomatik temizlenmeyebilir. Yapılandırmaya bağlıdır.
- Önbellek dizinlerine boyut sınırı konmalıdır.
- Görsel varyantları birikir. Silinen içeriğin varyantları kalır.
- Derleme çıktıları eskir. Eski sürümler temizlenmeli.
Birinci madde özellikle dikkat gerektirir: oturum temizliği bazı yapılandırmalarda olasılığa bağlı çalışır ve trafiği düşük sitelerde neredeyse hiç tetiklenmez.
Bu durumda oturum dizininde yıllara yayılmış milyonlarca dosya birikir. Zamanlanmış bir temizlik görevi tanımlamak, bu sorunu kalıcı olarak çözer.
Önleyici Yapı
Sorunu yaşamadan önlemek için kurulacak düzen:
| Önlem | Kazanç |
|---|---|
| Disk doluluk alarmı | Kesintiden önce haber |
| Dosya sayısı alarmı | Gizli sınırı yakalar |
| Ayrı disk bölümleri | Dolma sistemi etkilemez |
| Zamanlanmış temizlik | Birikimi engeller |
| Kota tanımlama | Tek dizin diski tüketemez |
Üçüncü satır en değerli yapısal önlemdir: günlükler ve yüklemeler ayrı bölümlerdeyse, dolduklarında veritabanı ve sistem çalışmaya devam eder.
Bu ayrım, disk dolması olayını bir kesintiden bir uyarıya dönüştürür. Kaynak yapılandırmasını kendiniz belirlediğiniz sanal özel sunucu kurulumlarında bölümleme kararını baştan doğru vermek, ilerideki acil müdahaleleri önler.
Disk Dolduğunda Acil Müdahale
Sistem yazamaz hâle geldiyse sıra şudur:
- Önce sıkıştırılmış eski günlükleri silin — en hızlı kazanç
- Paket yöneticisi önbelleğini temizleyin
- Silinmiş açık dosyaları kontrol edin, gerekiyorsa servisi yeniden başlatın
- Geçici dizinleri boşaltın
- Alan açıldıktan sonra asıl kaynağı araştırın
Beşinci madde önemli bir disiplindir: acil müdahale alan açar ama sorunu çözmez — aynı birikim aynı hızla tekrar oluşur. Kalıcı çözüm, kaynağı bulup kural tanımlamaktır.
Sonuç
Disk doluluğunda en çok vakit kaybettiren durum, silinen dosyanın alanı geri vermemesidir: bir süreç dosyayı açık tutuyorsa, silmek alanı serbest bırakmaz — servisi yeniden başlatmak gerekir. İkinci tuzak, alan boş görünürken "yer yok" hatası almaktır; bu, dosya sayısı sınırına takıldığınız anlamına gelir ve genellikle temizlenmeyen oturum dosyalarından kaynaklanır. Günlük yönetiminde ise sistem günlükleri değil, uygulamanızın kendi yazdığı günlük dosyası kuralsız kalır. Kalıcı çözüm ayrı disk bölümleri ve zamanlanmış temizliktir.
Sıkça Sorulan Sorular (SSS)
Dosyayı sildim ama disk hâlâ dolu, neden?
Bir süreç o dosyayı hâlâ açık tutuyor olabilir. Dosya tanıtıcısı açık kaldığı sürece alan serbest bırakılmaz ve dosya dizin listelemesinde de görünmez. Çözüm, ilgili servisi yeniden başlatmak veya günlük dosyasını uygun döndürme yöntemiyle yönetmektir.
Disk boş görünüyor ama "yer yok" hatası alıyorum?
Dosya sayısı sınırına takılmışsınızdır. Milyonlarca küçük dosya az yer kaplasa da bu sınırı doldurur. En yaygın kaynak, otomatik temizlenmeyen oturum dosyaları ve küçük önbellek parçalarıdır.
Günlükleri ne kadar süre saklamalıyım?
İhtiyacınıza göre değişir ama sonsuza kadar değil. Döndürme kuralı tanımlayın, eski günlükleri sıkıştırın ve bir saklama süresi belirleyin. Ayrıca uygulamanızın kendi günlüklerini de bu kurala dahil edin — sistem günlükleri tek kaynak değildir.
Ayrı disk bölümü kullanmalı mıyım?
Kullanabiliyorsanız evet. Günlükler ve kullanıcı yüklemeleri ayrı bölümlerdeyse, doldukları zaman veritabanı ve sistem çalışmaya devam eder. Bu ayrım, disk dolması olayını bir kesintiden bir uyarıya dönüştürür.