磁盘inode文件句柄数耗尽解决方案

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

1、确认inode的使用情况

image

2、定位占用 inode 最多的目录

find / -xdev -type f | awk -F'/' '{print $2}' | sort | uniq -c |sort -n -r

image

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、找到具体小文件目录

image

image

 这些时间目录中有超多小文件。

6、清理

image

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

posted @ 2025-08-26 10:13  潇湘神剑  阅读(4)  评论(0)    收藏  举报