在Linux服务器的/data分区内创建文件时,系统提示磁盘空间不足,用df -h命令查看磁盘使用情况,发现/data分区只使用了66%,用df -i查看/data分区的索引节点(inode),发现已经用满(IUsed=100%),所以导致系统无法创建新目录和文件。
/data/cache目录中存在数量非常多的小字节缓存文件,占用的Block不多,但是占用了大量的inode。
解决方案:
1、删除/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