磁盘inode文件句柄数耗尽解决方案
早晨飞书告警线上服务器根的inode小于10%,而磁盘空间是够用的。这意味着根分区中的 inode(索引节点)资源即将耗尽,而不是磁盘空间(block)耗尽。这种情况通常是由于大量小文件(如日志、缓存、临时文件等)占用了过多的 inode,而不是单个或少量大文件。
1、确认inode的使用情况

2、定位占用 inode 最多的目录
find / -xdev -type f | awk -F'/' '{print $2}' | sort | uniq -c |sort -n -r

3、更精确的统计子目录
[root@1-194 ~]# find / -xdev -type f | cut -d/ -f1-3 | sort | uniq -c | sort -n
1 /.autorelabel
1 /boot/config-3.10.0-1160.83.1.el7.x86_64
1 /boot/config-3.10.0-1160.el7.x86_64
1 /boot/grub
1 /boot/initramfs-0-rescue-f5de8969ed5a461082ecdf253cb84a03.img
1 /boot/initramfs-3.10.0-1160.83.1.el7.x86_64.img
... 省略好多 ...
33 /var/spool
62 /etc/sysconfig
67 /var/cache
72 /etc/filebeat
128 /usr/libexec
157 /var/log
306 /boot/grub2
378 /usr/sbin
742 /usr/bin
1266 /etc/selinux
1299 /usr/include
4848 /var/lib
5936 /usr/lib64
11708 /usr/lib
11945 /usr/src
15448 /usr/share
16027 /usr/local
2300404 /data/applogs
最终定位到/data/applogs目录使用的inode最多。
4、 深入定位具体目录
[root@1-194 ~]# cd /data/applogs/
[root@1-194 applogs]# ls
dataplatform-job xxl-job
[root@1-194 applogs]# find /data/applogs/dataplatform-job -xdev -type f | awk -F'/' '{print $3}' | sort | uniq -c | sort -n
62 applogs
[root@1-194 applogs]# find /data/applogs/xxl-job/ -xdev -type f | awk -F'/' '{print $3}' | sort | uniq -c | sort -n
2300490 applogs
进一步确定了是/data/applogs/xxl-job/目录导致的
5、找到具体小文件目录


这些时间目录中有超多小文件。
6、清理

清理完之后,inode使用率立马下降了。

浙公网安备 33010602011771号