主要引起的问题小文件太多,造成了Inode全部被占用。
解决办法:
1. 查看当前的磁盘占用情况:
$ df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/xvda 33030016 10407780 22622236 32% /
tmpfs 368748 0 368748 0% /lib/init/rw
varrun 368748 56 368692 1% /var/run
varlock 368748 0 368748 0% /var/lock
udev 368748 108 368640 1% /dev
tmpfs 368748 0 368748 0% /dev/shm
2. 检查当前Inode的占用情况:
$ df -i Filesystem Inodes IUsed IFree IUse% Mounted on /dev/xvda 2080768 2080768 0 100% / tmpfs 92187 3 92184 1% /lib/init/rw varrun 92187 38 92149 1% /var/run varlock 92187 4 92183 1% /var/lock udev 92187 4404 87783 5% /dev tmpfs 92187 1 92186 1% /dev/shm
3. 上面命令查看红色100%表明Inode全部被占用了,查看哪儿文件夹被占用了,从/ 开始会比较慢,可以换成特定的文件夹
$ for i in /*; do echo $i; find $i |wc -l; done4. 看哪个文件显示的目录太多,直接rm -rf 删除掉。
5. 更好的解决办法就是在crontab增加执行脚本,定时删除容易产生琐碎文件的文件,当然找到产生琐碎文件的根源才是解决之道,因为频繁产生琐碎文件,从架构上说存在问题,看看能否更好的优化
参考:http://www.ivankuznetsov.com/2010/02/no-space-left-on-device-running-out-of-inodes.html