17 Mart 2013 Pazar

"no space left" hatası ve inode kullanımı

Geçtiğimiz günlerde bir Linux sunucuda df -h çıktısına baktığımızda bir sürü boş yer olduğu halde
birşeyler yazmaya çalıştığımızda "no space left" hatası alıyorduk.

df -ih ile inode kullanım oranına baktığımızda tüm inode'ların kullanıldığını farkettik.

[root@surmail etc]# df -ih
Filesystem              Inodes    IUsed   IFree   IUse% Mounted on
/dev/mapper/vg_server    1.9M    1.9M       0      100%   /


df  -h çıktısında boş alanlar var ama tüm inode'ları kullandığımız için diske yazamıyoruz.
Dosya sistemi ext3 olduğu için ve ext3 dosya sisteminde inode değerleri disk bölümü formatlanırken belirlendiği için geriye tek çözüm gereksiz dosyaları silmekten geçiyor.

Öncelikli olarak logları silebilirsiniz. Bizim durumumuzda bir uygulamanın çok fazla geçici dosya oluşturduğunu farkettik. Bu geçici dosyaları silince bir hayli inode boşa çıktığı için sorunu çözmüş olduk.

df -h çıktısında bir sürü yer görüpte diske yazamıyorsanız kernel'e cin girdi vs gibi düşüncelere kapılmayın. Boşta inode var mı diye kontrol ediniz.

İnode hakkında detaylı bilgi almak isterseniz yıllar önce yazdığım makaleyi http://www.enderunix.org/docs/inode.html adresinden okuyabilirsiniz.

4 yorum:

  1. İnsanlığın sorun çözmede geldiği son nokta :)
    Hocam gerçekten çok iyi keşif, bu sorunu çözmekte diğer sorunları çözmek gibi 23 sn mi aldı :)

    YanıtlaSil
    Yanıtlar
    1. Merhaba Kayhan. Bu seferki daha kısa sürdü. 10 saniye diyebiliriz :)

      Sil
  2. İsmail Bey, paylaşımınız için teşekkürler. http://www.enderunix.org/docs/inode.html adresindeki makaleniz Türkçe karakter uyumsuzluğu yüzünden zar zor okunabiliyor. Nacizane ileteyim dedim :)

    YanıtlaSil
  3. browser'daki encoding'i Türkçe'ye çevirince düzeldi ama unicode'da dediğim sorun var bilginize :)

    Not: Google Chrome browser kullanıyorum.

    YanıtlaSil