antond.net

0 %
Anton Darmawanto
Front-end Developer
Ui/UX Designer
  • Residence:
    Indonesia
  • City:
    Jakarta Selatan
  • Age:
    40
Indonesian
English
Jawa
html
CSS
Js
PHP
WordPress
Proxmox
Laravel
Linux server (ubuntu, debian, fedora)
Alibaba Cloud
  • Proxmox, Vm Ware
  • Stylus, Sass, Less
  • Gulp, Webpack, Grunt
  • GIT knowledge
0

No products in the cart.

Return To Shop

Cara Mengatasi Error ‘No Space Left on Device’ Akibat Inode Penuh di VPS Linux

11/11/2026

Ketika sedang mengelola server VPS Linux (seperti Ubuntu atau Debian) yang menjalankan website bisnis atau aplikasi web, Anda tiba-tiba mendapati layanan web server Nginx atau database MariaDB mati mendadak. Ketika mencoba membuat file baru, mengedit berkas konfigurasi, atau menjalankan apt update, terminal melemparkan pesan error yang membingungkan:

touch: cannot touch 'test.txt': No space left on device

Secara naluriah, Anda langsung memeriksa kapasitas penyimpanan server menggunakan perintah df -h. Namun hasilnya justru membuat heran: kapasitas hard disk atau SSD server Anda masih tersisa puluhan gigabyte — misalnya baru terpakai 35 persen.

Bagaimana mungkin sistem operasi melaporkan “No space left on device” padahal ruang hard disk masih sangat lapang?

Jawabannya terletak pada komponen sistem berkas Linux yang disebut Inode (Index Node).

Ilustrasi 1 Cara Mengatasi Error 'No Space Left on Device' Akibat Inode Penuh di VPS Linux
Ilustrasi 1 Cara Mengatasi Error ‘No Space Left on Device’ Akibat Inode Penuh di VPS Linux

Apa Itu Inode dan Mengapa Bisa Habis Sebelum Disk Penuh?

Di dalam sistem berkas Linux (seperti ext4), setiap file, folder, atau tautan simbolik membutuhkan sebuah struktur data bernama Inode untuk menyimpan metadata (seperti ukuran file, pemilik, hak izin akses, dan penunjuk lokasi blok data fisik di hard disk).

Jumlah total Inode dialokasikan secara tetap saat sistem berkas pertama kali dibuat (format).

Masalah muncul jika server Anda menyimpan jutaan file berukuran sangat kecil. Misalnya, 1 juta file teks yang masing-masing hanya berukuran 10 byte akan menghabiskan 1 juta nomor Inode, padahal total ruang hard disk yang terpakai hanya sekitar 10 megabyte.

Begitu alokasi nomor Inode habis mencapai 100 persen, sistem berkas Linux tidak akan bisa membuat file baru sekecil apa pun, memicu error “No space left on device”.

Langkah 1: Periksa Penggunaan Inode Server Menggunakan Perintah df -i

Untuk memastikan apakah Inode memang menjadi akar masalahnya, jalankan perintah berikut di terminal SSH server Anda:

df -i

Perhatikan kolom IUse% pada partisi utama (/dev/vda1 atau /):

Filesystem       Inodes   IUsed   IFree IUse% Mounted on
/dev/vda1       1310720 1310720       0  100% /

Jika kolom IUse% menunjukkan angka 100% dan IFree bernilai 0, maka dipastikan server Anda kehabisan Inode.

Ilustrasi 2 Cara Mengatasi Error 'No Space Left on Device' Akibat Inode Penuh di VPS Linux
Ilustrasi 2 Cara Mengatasi Error ‘No Space Left on Device’ Akibat Inode Penuh di VPS Linux

Langkah 2: Temukan Direktori yang Menyimpan Jutaan File Kecil

Langkah berikutnya adalah melacak direktori mana yang menjadi sarang jutaan file kecil tersebut. Jalankan perintah pemindaian cepat berikut di direktori root server:

sudo find / -xdev -maxdepth 2 -type d -exec sh -c 'echo "$(find "$1" -type f | wc -l) $1"' sh {} \; 2>/dev/null | sort -n -r | head -n 15

Perintah di atas akan menghitung jumlah file di setiap folder tingkat atas dan menampilkan 15 folder dengan jumlah file terbanyak.

Dalam pengalaman administrasi server web Linux di Indonesia, tiga lokasi berikut adalah pelaku paling sering:

  • /var/lib/php/sessions/ — Jutaan file sesi PHP kadaluwarsa milik pengguna website yang gagal dihapus oleh cron pembersih otomatis.
  • /var/spool/postfix/maildrop/ atau /var/spool/clientmqueue/ — Antrean email bouncing atau notifikasi server yang gagal terkirim dan menumpuk bertahun-tahun.
  • /var/log/ atau direktori cache aplikasi — File log mini atau cache gambar yang tidak pernah dirotasi.

Berikut adalah tabel diagnosa penyebab Inode penuh dan tindakan aman yang direkomendasikan:

Lokasi Folder PenuhKarakteristik FilePerintah Pembersihan Aman
/var/lib/php/sessionsSesi web pengguna (ribuan file sess_*)find /var/lib/php/sessions -type f -cmin +1440 -delete
/var/spool/postfix/maildropUndelivered email spoolfind /var/spool/postfix/maildrop -type f -delete
/tmpFile sementara aplikasi Node.js/Pythonfind /tmp -type f -atime +7 -delete
/var/lib/docker/overlay2Layer container Docker tak terpakaiJalankan docker system prune -a --volumes
Node.js node_modulesDependensi npm ribuan paket miniHapus direktori build lama aplikasi yang sudah tidak aktif
Ilustrasi 3 Cara Mengatasi Error 'No Space Left on Device' Akibat Inode Penuh di VPS Linux
Ilustrasi 3 Cara Mengatasi Error ‘No Space Left on Device’ Akibat Inode Penuh di VPS Linux

Langkah 3: Bersihkan File dengan Aman Tanpa Menyebabkan Terminal Hang

Jangan pernah menjalankan perintah rm -rf /var/lib/php/sessions/ jika di dalam folder tersebut terdapat ratusan ribu file. Perintah rm standar akan langsung gagal dengan pesan error Argument list too long atau membuat CPU server macet total (kernel hang*).

Gunakan perintah find dengan argumen -delete yang memproses penghapusan satu per satu secara efisien:

Kasus A: Membersihkan Sesi PHP yang Berumur Lebih dari 24 Jam

sudo find /var/lib/php/sessions/ -type f -cmin +1440 -delete

Kasus B: Membersihkan Antrean Email Spool yang Macet

sudo find /var/spool/postfix/maildrop/ -type f -delete

Kasus C: Membersihkan Sisa Image dan Container Docker Menggantung

Jika Anda menjalankan Docker di VPS, tumpukan layer container lama sering kali menguras jutaan Inode:

docker system prune -af --volumes

Langkah 4: Verifikasi Ulang Status Inode dan Restart Layanan

Setelah proses pembersihan selesai (bisa memakan waktu 2 hingga 5 menit jika file mencapai jutaan), periksa kembali status Inode Anda:

df -i /

Sekarang kolom IUse% akan turun drastis (misalnya menjadi 20-30%), dan ruang pembuatan file baru telah kembali tersedia.

Terakhir, hidupkan kembali layanan web dan database Anda:

sudo systemctl restart nginx
sudo systemctl restart mariadb || sudo systemctl restart mysql
sudo systemctl restart php8.2-fpm

Dengan langkah-langkah di atas, VPS Linux Anda akan kembali berjalan normal dan stabil tanpa perlu melakukan reboot server atau menambah kapasitas disk berbayar ke provider hosting Anda.

Posted in Tutorial