Rain WikiWindows · Linux · Android

Inodes dan 'No space left on device'

Konsepext4 dan sistem berkas serupa

Inode adalah struktur data yang digunakan oleh sistem file bergaya Unix untuk menyimpan informasi tentang file, seperti pemilik, izin, ukuran, dan tempat data tersebut berada. Setiap file menggunakan satu inode, dan banyak sistem file memiliki jumlah yang tetap, sehingga jutaan file kecil dapat menyebabkan 'No space left on device' sementara df -h tetap menunjukkan ruang kosong.

1Cara melihatnya

df -i mencantumkan total, inode yang digunakan, dan inode bebas per sistem file. ls -i menunjukkan nomor inode file, dan stat <file> menunjukkan detail inodenya.

2Penyebab umum

Direktori sesi atau tembolok aplikasi web, antrean surat (mail queue), file log kecil yang tidak dirotasi, dan tembolok build dapat membuat jutaan file.

3Menemukan direktori

GNU du dapat menghitung inode: du --inodes -x / | sort -n | tail mencantumkan direktori dengan entri terbanyak.

Cara memperbaiki kehabisan inode

  1. Konfirmasi: df -i (IUse% mendekati 100%).
  2. Temukan direktori: sudo du --inodes -x --max-depth=3 / | sort -n | tail -20
  3. Periksa apa yang membuat file-file tersebut sebelum menghapus apa pun.
  4. Hapus file lama dari aplikasi tersebut dengan alatnya sendiri, atau dengan find, contohnya: find /path -type f -mtime +7 -delete setelah melakukan uji coba (dry run) tanpa -delete.

Perhatian

  • Selalu jalankan find tanpa -delete terlebih dahulu dan baca daftarnya.
  • Jumlah inode ext4 bersifat tetap saat sistem file dibuat.

Sumber

  1. inode(7) man7.org
  2. df(1) man7.org
  3. du(1) man7.org
  4. find(1) man7.org

Terakhir ditinjau: