zabbix监控告警--vfs.fs.inode不足5%的解决过程
摘要
-
解决Linux索引节点(inode)用满导致故障的方法
zabbix告警
1 | vfs.fs.inode[/,pfree]):5 % |
解决过程
-
登录linux系统后查看inode使用情况和磁盘使用情况
1 | inode 不足了 |
-
根据上面的查询结果初步判断是系统产生了大量的临时文件导致inode用尽了
-
排查到底哪个目录下的文件数过多
1 | 通过下面的命令统计文件数量前十名,这里发现是/var目录中文件异常的多 |
-
百度一下
/var/spool/clientmqueue
目录的作用
1 | Linux文件目录 /var/spool/clientmqueue/ 下的文件主要是由cron任务产生的输出文件。 当cron任务中有输出内容时,如果服务器上没有配置sendmail服务,这些输出内容就会被保存到 /var/spool/clientmqueue/ 目录内。这是因为cron任务中的命令如果有输出(比如错误信息或者正常的输出信息),默认会通过sendmail发送,但如果服务器上没有配置sendmail服务,这些输出内容就会被保存到 /var/spool/clientmqueue/ 目录中。因此,这个目录下主要包含的是由cron任务产生的输出文件,这些文件记录了cron任务执行过程中的输出信息。 |
-
上面的解释说明
/var/spool/clientmqueue
目录下的文件可以被删除,所以直接删了就可以解决该问题了
1 | 文件数量过多,不能这么删除 |
详解inode
-
inode是文件系统内一个重要的数据结构,它用来描述一个文件,包括文件名、文件类型、权限、所有者、创建时间、修改时间等。在Linux系统中,每个文件都有一个唯一的inode号,这个inode号是分配给该文件的,并且不能被改变。
1 | 查看当前目录的inode号 |
-
操作系统打开文件时会按如下步骤执行:
- 查找文件名称对应的inode号
- 根据inode号获取inode信息
- 根据inode信息找到文件对应的数据块,读出数据
-
inode的大小是有限制的,通常取决于文件系统和操作系统。在大多数Linux文件系统中,inode大小通常是128字节或256字节。这是由文件系统在格式化时决定的,并且格式化后不能更改。
1 | 查看inode大小 |
-
查看文件系统的inode总数
一个inode只对应一个实际文件,所以inodes最大数量就是文件的最大数量。
1 | 查看所有挂载磁盘 |
-
不同的文件系统默认的inode数量不同,以
1G
磁盘空间为例,ext4
文件系统默认为65536
,xfs
文件系统默认为52万
(每2k设置一个inode),并且xfs
会动态扩容inode数量。