在Linux服务器的/data分区内建立文件时,系统提示磁盘空间不足,用df -h命令查看磁盘使用状况,发现/data分区只使用了66%,用df -i查看/data分区的索引节点(inode),发现已经用满(IUsed=100%),因此致使系统没法建立新目录和文件。
java
/data/cache目录中存在数量很是多的小字节缓存文件,占用的Block很少,可是占用了大量的inode。node
解决方案:
一、删除/data/cache目录中的部分文件,释放出/data分区的一部分inode。
缘由是大量的cache小文件致使。好比记录用户GEO信息的缓存文件随着用户访问量的增加将会持续快速增加耗尽索引节点资源。所以在设计时应该尽可能避免产生大量琐碎的小文件,大量很小的文件应该把内容放入数据库进行管理。并及时清理临时文件。数据库
定时任务脚本:缓存
log_file="/var/log/del_tmp_cuk.log" V_NUM=`df -i | grep -w /tmp | awk '{print $5}' | cut -f 1 -d "%"` if [ $V_NUM -gt 30 ] then echo "===== Start time is `date +"%F %H:%M:%S"`=====" >> $log_file echo $V_NUM >> $log_file rm -rf /tmp/cuk* echo -e "\n===== End time is `date +"%F %H:%M:%S"`=====" >> $log_file fi