Bismillaahirrohmaanirrohiim…
Saya beberapa kali mengalami masalah ini, space server besar dan masih terpakai sekitar 20-40% namun ternyata ketika ingin melakukan upload file atau modifikasi file ada error no space left on device, masalah ini karena file inode penuh.
Inode adalah jumlah file yang ada di dalam server, bukan ukuran filenya, tapi jumlah filenya.
Yang membuat penuh inode ternyata adalah file cache atau file session yang kecil-kecil tapi banyak banget, sampai jutaan file.
Untuk server yang berukuran SSD 50 GB, saya pernah menemukan file di php/session/sess_* sekitar 2-3 juta file, dan untuk menghapus file tersebut memerlukan teknik khusus, jika menggunakan perintah biasa rm atau delete biasa tidak akan mampu.
Berikut langkah-langkah yang digunakan untuk menyelesaikan masalah no space left on device karena inode full.
df
Akan ditampilkan available space pada /dev/xvda/
df -i
Akan ditampilkan ketersediaan space inode dalam server
– Cek dalam folder root yang isinya banyak file
for i in /*; do echo $i; find $i |wc -l; done
– cek dalam folder yang isinya banyak file
for i in /var/*; do echo $i; find $i |wc -l; done
– cek lagi dalam folder yang isinya banyak file
for i in /var/lib/*; do echo $i; find $i |wc -l; done for i in /var/lib/php/*; do echo $i; find $i |wc -l; done
misalnya hasilnya seperti ini
/var/lib/php/session 2281209
cek file lebih dari 30 hari yg lalu find /var/lib/php/session -type f -mtime +30 hapus file lebih dari 30 hari yg lalu find /path/to/folder -name "filenamestart*" -type f -exec rm -f {} \; find /var/lib/php/session -name "sess*" -type f -mtime +30 -exec rm -f {} \; atau find /var/lib/php/session -type f -mtime +30 -delete jika berdasarkan nama find /var/lib/php/session/ -type f -name "sess_*" -delete cara biasa hapus file rm -rf /var/lib/php/session/sess_* Jika ribuan bahkan jutaan file, akan memakan banyak ram, lambat, dan tidak efisien. file besar jutaan harus pakai perintah di bawah ini rsync -a --delete /home/domain.com/public_html/folderkosong/ /var/lib/php/session/ jika cara diatas semua gagal, maka pakai cara xargs rm - cd ke folder yang mau dihapus isinya - cek isi folder dg limit 5 file ls -U | head -5 - untuk hapus 100 file ls -U | head -100 | xargs rm -rf - untuk hapus 100000 file ls -U | head -100000 | xargs rm -rf cara lain lagi: - cd ke folder yang mau dihapus isinya find . -maxdepth 1 -print0 | xargs -0 rm -rf coba dulu yaa
Tunggu beberapa saat, biasanya akan lama dan kelihatan hang di jendela putty. Tidak apa-apa biarkan saja beberapa menit, kemudian coba login root menggunakan putty yang lain dan lanjutkan cek seperti poin di bawah.
df -i
Seharusnya ketersediaan inode file dalam server akan jadi bertambah dan server akan berjalan normal seperti semula lagi, tidak ada error no space available saat digunakan.
Terimakasih, semoga bermanfaat.
Informasi delete jutaan file di linux:
rm: hapus jutaan file tidak bisa dilakukan dengan ini.
find -exec: bisa, tapi lambat.
find -delete: cepat dan mudah untuk menghapus file.
rsync –delete: tercepat dalam menghapus file.
du -ahx / | sort -rh | head -5 //akan menampilkan 5 top folder dengan ukuran yang besar find / -xdev -type f -size +100M -exec du -sh {} ';' | sort -rh | head -n5 //akan menampilkan file dengan ukuran >100MB du -hsx * | sort -rh //untuk menampilkan list folder beserta ukuran besarnya //jika ditemukan file besar pada folder tertentu, hapus dengan cara dibawah ini, misalnya folder logs. rm -rf /usr/local/lsws/logs/error.log*
//utk melihat semua ukuran folder dalam domain (semua subfolder juga akan dihitung) du -h /home/domain.com //utk melihat ukuran satu folder domain du -sh /home/domain.com //utk melihat ukuran file dan folder dalam domain du -ah /home/domain.com //utk melihat ukuran file dan folder dalam domain dengan pengecualian du -ah --exclude="*.txt" /home/domain.com //utk melihat ukuran file dan folder dalam domain berdasarkan modification time du -ha --time /home/domain.com du = disk usage
Bismillaahirrohmaanirrohiim... Untuk mendeteksi cpu usage tinggi memang perkara rumit, adakalanya karena codingan bermasalah, akses ke…
Bismillaahirrohmaanirrohiim... Jika tidak dirawat dan dicek berkala, log mongodb akan semakin membesar. Bahkan sampai menghabiskan…
Bismillaahirrohmaanirrohiim... Jika kita membuat website yang digunakan untuk memantau lokasi HP client, maka kita memerlukan…
Bismillaahirrohmaanirrohiim... Kali ini kita akan mencoba menerapkan rumus trigonometeri dari formula haversine, yang digunakan untuk…
Bismillaahirrohmaanirrohiim... Disini saya akan berbagi pengalaman tentang susahnya membuka tutup botol cleo kecil ukuran 220ml.…
Bismillaahirrohmaanirrohiim... Kali ini saya akan berbagi pengalaman tentang mati lampu yang disebabkan oleh permasalahan arus…
View Comments
saya mengalami kendala yang sama, untuk cara agar hapus auto gimana min ?
pake cron bisa, tapi kl hapus jutaan data sbnrnya ga sering dilakukan, manual aja gpp.
sudah 2 kali mengalami hal ini, sampe harus reinstall OS,
dicyberpanel tempatnya di lsphp
say amenggunakan command ini
find /var/lib/lsphp/session/ -type f -name "sess*" -delete
langsung saja disk bersih dari 47% menjadi 23%
Terimakasih