Inodes dan 'No space left on device'
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
- Konfirmasi:
df -i(IUse% mendekati 100%). - Temukan direktori:
sudo du --inodes -x --max-depth=3 / | sort -n | tail -20 - Periksa apa yang membuat file-file tersebut sebelum menghapus apa pun.
- Hapus file lama dari aplikasi tersebut dengan alatnya sendiri, atau dengan find, contohnya:
find /path -type f -mtime +7 -deletesetelah 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.
Artikel terkait
- df (disk free)Cara membaca keluaran df, alasan Use% dapat mencapai 100% sebelum Avail bernilai nol bagi pengguna normal, dan cara memeriksa inode dengan df -i.
- Mencari file berukuran besar dan lama dengan findCara menggunakan find untuk membuat daftar file besar atau lama di Linux, pratinjau dengan aman, dan hapus hanya yang sudah Anda periksa.
- Penggunaan disk dengan du dan ncduCara mencari apa yang memenuhi disk Linux dengan du dan ncdu interaktif, menggunakan opsi yang tetap berada di satu sistem file.
Sumber
Terakhir ditinjau: