TOC

inode 使用率太高的问题

Jenkins 发布失败,日志显示 scp No space left on device,也就是磁盘空间不足。

查看之后发现是磁盘占用其实不高,不过 inode 使用率满了(其实监控也在报),也就是说小文件太多了。

[staff001@192.168.64.234 ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/vda1              40G   29G  8.7G  77% /
tmpfs                 972M     0  972M   0% /dev/shm
/dev/vdb               99G   41G   54G  44% /data

[staff001@192.168.64.234 ~]# df -i
Filesystem            Inodes   IUsed   IFree IUse% Mounted on
/dev/vda1            2621440 2621440       0  100% /
tmpfs                 248685       1  248684    1% /dev/shm
/dev/vdb             6553600  467525 6086075    8% /data

通过经验和 find 命令找到文件太多的目录:

find /var -xdev -printf '%h\n'          | sort | uniq -c | sort -n | awk '{sum+=$1;print $0;}END{print "\nTotal: "sum}'

# 只看二级目录的数据
find /var -xdev -type f | cut -d / -f 3 | sort | uniq -c | sort -n | awk '{sum+=$1;print $0;}END{print "\nTotal: "sum}'