在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