当前位置: 首页 > 科技观察

Linux系统inodes资源耗尽问题

时间:2023-03-14 09:10:31 科技观察

1.inode介绍在Linux系统下,文件数据以“块”的形式存储,文件的元信息,如文件的创建者、文件创建日期、文件大小等。这个区域是存储文件元信息的称为索引节点,中文翻译为“索引节点”。inode也占用硬盘空间。硬盘格式化时,操作系统会自动将硬盘分为两个区域。一是数据区,存放文件数据;另一个是inode区(inode表),存放inode包含的信息。每个inode节点的大小一般为128字节或256字节。格式化时给出了inode节点总数,一般每1KB或每2KB设置一个inode。假设在一个1GB的硬盘中,每个inode节点的大小为128字节,每1KB设置一个inode,那么inode表的大小将达到128MB,占整个硬盘的12.8%。2.inode耗尽。inode用完了,存储空间也用完了。他们无法正常创建文件或执行某些命令。inode用完后,可能还有存储空间。这种情况会产生大量小文件,inode表已满。一般当存储空间用完时,只有百分之几的inode被使用,所以很容易忽略对inode使用情况的监控。借用网络图来说明inode耗尽但磁盘空间没有用完的情况:查看磁盘空间使用情况,使用df命令查看inode使用情况,使用df-i命令:以上两个命令即可使用-h参数,命令为df-h和df-hi。从图中可以看出,71%的磁盘空间被使用,但是100%的inode被使用。3、inode耗尽解决方法inode的大小是磁盘格式化分区时确定的。它与分区的大小有关。分区越大,inode越大,反之亦然。Linux操作系统的根目录一般都有比较小的分区。如果周期性产生小文件,不及时清理,很容易造成inode爆满。inode全解步骤:(1)查看文件最多的目录foriin/*;doecho$i;find$i|wc-l;done如果确定目录范围,/*中写的具体点是最后发现是/var/spool/postfix/maildrop目录下的小文件太多了。原因如下:Linux在执行cron时,会将cron执行脚本中的输出和警告信息以邮件的形式发送给cron的拥有者。由于客户环境中的sendmail和postfix没有正常运行,邮件没有发送成功,所有的小文件都堆积在maildrop目录下。另外,由于缺乏自动清理机制,导致该目录下堆积了大量文件。查看root用户后发现有定时任务每分钟进行一次时钟同步,定时任务每分钟生成一个小文件。(2)删除大量文件ls|xargs-n1000rm-rf,需要使用xargs命令,否则会删除失败。4、总结(1)在设置方面,在crontab-e的第一行加上MAILTO="",就不会生成文件了。(2)Redirection为定时任务设置定向输出文件。不需要日志输出的定时任务可以将日志重新记录到/dev/null,如下:*/10****/tmp/test.sh>/dev/null2>&1(3)定时清理upfilesfinddirectory-typef-mtime+30|xargs-n1000rm-f**(4)监控??inode使用注意事项:注意crontab的编写和生成文件的定时清理