Catatan Belajar Hari Ketiga Memahami Disk Usage, Inode, dan Debugging Error “No Space Left on Device”
Setelah memahami process dan signal di hari sebelumnya, saya masuk ke salah satu penyebab klasik server production down: masalah filesystem dan disk.
Hari ini saya belajar bahwa error seperti:
No space left on device
Tidak selalu berarti disk benar-benar penuh.
1️⃣ df vs du — Jangan Sampai Salah Paham
Untuk melihat penggunaan disk secara global:
df -h
-h = human readable
Menampilkan penggunaan disk per filesystem
Contoh output:
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 50G 45G 3G 94% /
Jika Use% mencapai 100%, disk block habis.
Untuk melihat ukuran folder tertentu:
du -sh *
Atau untuk melihat folder terbesar:
du -h --max-depth=1 | sort -hr
Perbedaan penting:
- df → melihat penggunaan disk dari sisi filesystem
- du → melihat ukuran file/folder dari sisi direktori
2️⃣ Inode: Penyebab Tersembunyi “Disk Penuh”
Saya belajar bahwa setiap file di Linux menggunakan inode.
Cek inode dengan:
df -i
Contoh:
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sda2 3276800 3276800 0 100% /
Jika inode 100%, maka:
- Tidak bisa membuat file baru
- Akan muncul error:
No space left on device
- Meskipun df -h masih menunjukkan sisa storage
Ini sering terjadi jika ada terlalu banyak file kecil seperti:
- Log file
- Cache
- Temporary file
Upload kecil dalam jumlah besar
3️⃣ Simulasi Inode Penuh
Untuk memahami ini, saya membuat ribuan file kecil:
mkdir inode-test
cd inode-test
for i in {1..50000}; do touch file_$i.txt; done
Lalu cek:
df -i
Terlihat bahwa inode usage meningkat drastis.
Ini membuka wawasan bahwa disk penuh bukan hanya soal ukuran file.
4️⃣ Mount Point Awareness
Saya juga belajar mengecek mount point:
lsblk
atau
mount | grep '^/dev'
| Mount | Fungsi |
|---|---|
/ |
Root filesystem |
/home |
Data user |
/var |
Log dan data service |
/tmp |
File sementara |
Jika /var penuh, service seperti database atau web server bisa gagal berjalan.
5️⃣ Kenapa df dan du Bisa Berbeda?
Kasus nyata di production:
df -h menunjukkan 100%
du tidak menunjukkan file besar
Kemungkinan penyebabnya:
File sudah dihapus tetapi masih digunakan oleh process
Linux tidak benar-benar membebaskan space sampai process yang memegang file descriptor menutup file tersebut
Untuk mengecek:
lsof | grep deleted
Ini adalah teknik debugging yang sangat penting di server production.
6️⃣ Mini Simulasi Log Growth
Saya menjalankan fake service dan mengarahkan output ke file:
./fake-service.sh >> service.log &
Kemudian memantau ukuran file:
du -sh service.log
Dari sini saya memahami bagaimana log bisa tumbuh tanpa disadari dan menyebabkan disk penuh jika tidak ada log rotation.
💡 Insight Hari Ini
Error:
No space left on device
Tidak selalu berarti:
- RAM habis
- CPU overload
- Database error
Sering kali penyebabnya adalah:
- Disk block habis
- Inode habis
- File descriptor masih terbuka
Memahami filesystem membuat saya melihat sistem Linux dengan cara yang jauh lebih dalam lagi.
Sampai jumpa di Infra Journey hari keempat nanti!
Top comments (0)