
Disk kullanımına bakıyorsunuz, yüzde kırkta. Ama sunucu dosya yazamıyor, veritabanı hata veriyor ve web sunucusu geçici dosya oluşturamıyor. Alan var, ama başka bir şey bitmiş.
Bu yazı, inode tükenmesini ve nasıl çözüleceğini ele alıyor.
Inode Nedir?
Dosya sistemi iki ayrı kaynak yönetir:
| Kaynak | Neyi tutar |
|---|---|
| Veri blokları | Dosyaların içeriği |
| Inode tablosu | Dosyaların kimlik bilgisi |
Her dosya, klasör ve bağlantı bir inode kullanır. Kritik nokta şudur: inode sayısı dosya sistemi oluşturulurken sabitlenir ve sonradan büyütülemez — disk ne kadar boş olursa olsun bu sayı artmaz.
Sıfır baytlık bir dosya bile bir inode tüketir. Bu yüzden çok sayıda küçük dosya, alan bitmeden inode bitirebilir.
Belirtiler
Tükenme kendini şu şekillerde gösterir:
- "Cihazda yer kalmadı" hatası. Alan varken.
- Dosya oluşturulamıyor.
- Oturum açılamıyor. Geçici dosya yazılamaz.
- Yükleme başarısız oluyor.
- Paket kurulumu hata veriyor.
Birinci madde teşhisi geciktiren asıl sebeptir: hata mesajı disk alanının bittiğini söyler, oysa alan boştur — bu yüzden yönetici saatlerce yanlış yerde arar.
Üçüncü madde ise durumu iyice kilitler. Oturum açamayınca müdahale de zorlaşır ve konsol erişimi gerekir.
Nasıl Tespit Edilir?
Kontrol basittir ama akla gelmez:
- Inode kullanımını sorgulayın.
- Bölüm bazında bakın.
- Dolu bölümü belirleyin.
- Hangi klasörde biriktiğini bulun.
İkinci madde önemlidir çünkü sınır bölüm bazındadır: ayrı bölümlere sahip bir sunucuda yalnızca bir bölümün inode'ları tükenmiş olabilir ve sistem genelinde bakıldığında sorun görünmez.
Dördüncü adım ise en çok zaman alanıdır. Milyonlarca dosyanın hangi klasörde biriktiğini bulmak, dizin dizin sayım yapmayı gerektirir.
Bu sayımı en üst seviyeden başlatıp en kalabalık dalı takip etmek en hızlı yoldur.
Dosyalar Nereden Birikir?
| Kaynak | Tipik durum |
|---|---|
| Oturum dosyaları | Temizlenmiyorsa milyonlara çıkar |
| Önbellek dosyaları | Süresi dolan silinmiyorsa |
| Geçici yükleme dosyaları | Yarım kalan işlemler |
| Posta kuyruğu | Gönderilemeyen iletiler |
| Küçük günlük dosyaları | Günlük döndürme yanlışsa |
| Küçük görsel önizlemeleri | Her boyut için ayrı dosya |
Birinci satır en sık görülen nedendir: oturum dosyaları için otomatik temizlik çalışmıyorsa, her ziyaretçi bir dosya bırakır ve aylar içinde milyonlarca küçük dosya birikir.
Bu dosyaların toplam boyutu birkaç yüz megabayt olabilir — yani disk kullanımında hiç dikkat çekmez.
Dördüncü satır ise e-posta gönderen sunucularda ortaya çıkar. Teslim edilemeyen iletiler kuyrukta birikir ve her biri birden fazla dosya oluşturur.
Altıncı satır görsel yoğun sitelerde büyür. Her yüklenen görselin altı farklı boyutu üretiliyorsa, dosya sayısı altıya katlanır.
Acil Müdahale
Sunucu kilitlendiğinde yapılacaklar:
- En kalabalık klasörü bulun.
- Eski dosyaları parça parça silin.
- Tek seferde milyonlarca dosya silmeyin.
- Silme işlemini arka planda çalıştırın.
Üçüncü madde ikinci bir kriz yaratmayı önler: milyonlarca dosyayı tek komutla silmeye çalışmak, sunucunun disk giriş-çıkışını doyurur ve site yanıt veremez hâle gelir.
Doğru yaklaşım, silmeyi küçük gruplar hâlinde ve düşük öncelikle yapmaktır. Süre uzar ama sistem çalışmaya devam eder.
İkinci maddede tarih filtresi kullanmak güvenliği artırır. Yalnızca belirli bir tarihten eski dosyalar silinir.
Kalıcı Çözüm
- Otomatik temizlik görevleri kurun.
- Oturum ve önbelleği veritabanına taşıyın.
- Dosyaları alt klasörlere dağıtın.
- Nesne depolamaya geçin.
- Inode kullanımını izlemeye alın.
İkinci madde sorunu kökten çözer: oturum ve önbelleği bellek tabanlı bir depoya taşımak, dosya sistemi üzerindeki yükü tamamen ortadan kaldırır ve aynı zamanda performansı artırır.
Beşinci madde ise bir daha sürpriz yaşanmamasını sağlar. Disk alanı izlenirken inode kullanımının izlenmemesi çok yaygın bir eksikliktir.
Üçüncü madde performans için de gereklidir. Tek bir klasörde yüz binlerce dosya bulunması, o klasördeki her işlemi yavaşlatır.
Yeni Sunucu Kurarken
| Karar | Etkisi |
|---|---|
| Dosya sistemi seçimi | Bazıları dinamik inode ayırır |
| Biçimlendirme ayarı | Inode yoğunluğu belirlenir |
| Bölümleme | Sorun tek bölümde kalır |
Birinci satır uzun vadeli bir çözüm sunar: bazı modern dosya sistemleri inode'ları ihtiyaç oldukça ayırır ve bu sorunu tamamen ortadan kaldırır.
Sunucu kurulumunda dosya sistemi seçimi yapabiliyorsanız, çok sayıda küçük dosya üretecek bir iş yükü için bu özellik dikkate alınmalıdır.
Üçüncü satır ise hasarı sınırlar. Veri bölümünde inode tükenmesi, sistem bölümünü etkilemez ve müdahale imkânı kalır.
Disk ve dosya sistemi yapılandırmanızı kurulum sırasında belirlemeniz gerekir; VDS barındırma hizmeti kapsamında disk düzeni ve dosya sistemi seçenekleri kurulum aşamasında değerlendirilebilir.
Sonuç
"Cihazda yer kalmadı" hatasını disk doluluğu yüzde kırkken görüyorsanız sorun inode tükenmesidir: inode sayısı dosya sistemi oluşturulurken sabitlenir ve sonradan büyütülemez. En sık neden temizlenmeyen oturum dosyalarıdır — toplam boyutları birkaç yüz megabayt olduğu için disk kullanımında hiç dikkat çekmezler. Temizlik yaparken milyonlarca dosyayı tek komutla silmeye kalkmayın; disk giriş-çıkışını doyurur ve site yanıt veremez hâle gelir. Kalıcı çözüm oturum ve önbelleği bellek tabanlı bir depoya taşımaktır.
Sıkça Sorulan Sorular (SSS)
Disk boşken neden "yer yok" diyor?
Dosya sistemi iki ayrı kaynak yönetir: veri blokları ve inode tablosu. Her dosya, klasör ve bağlantı bir inode kullanır — sıfır baytlık dosya bile. Inode sayısı biçimlendirme sırasında sabitlenir ve sonradan büyütülemez, bu yüzden alan boşken tükenebilir.
Bu kadar dosya nereden birikiyor?
En sık neden temizlenmeyen oturum dosyalarıdır; her ziyaretçi bir dosya bırakır ve aylar içinde milyonlara çıkar. Ardından önbellek dosyaları, yarım kalan yüklemeler, gönderilemeyen posta kuyruğu ve her yüklenen görselin farklı boyutlardaki önizlemeleri gelir.
Nasıl güvenle temizlerim?
Parça parça ve tarih filtresiyle. Milyonlarca dosyayı tek komutla silmeye çalışmak disk giriş-çıkışını doyurur ve siteyi yanıt veremez hâle getirir. Silmeyi küçük gruplar hâlinde, düşük öncelikle ve arka planda çalıştırın — süre uzar ama sistem ayakta kalır.
Bir daha yaşamamak için ne yapmalıyım?
Oturum ve önbelleği bellek tabanlı bir depoya taşıyın; bu, dosya sistemi üzerindeki yükü tamamen kaldırır ve performansı da artırır. Ayrıca inode kullanımını izlemeye alın — disk alanı izlenirken inode'un izlenmemesi çok yaygın bir eksikliktir.