0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

详谈Linux系统下的inodes资源耗尽

如意 来源:Linux云计算网络 作者:Linux云计算网络 2021-01-05 17:32 次阅读

1. inodes介绍

Linux系统下文件数据储存在“块”中,文件的元信息,例如文件的创建者、文件的创建日期、文件的大小等。这种储存文件元信息的区域就叫做inode,中文译名为“索引节点”。

inode也占用硬盘空间,硬盘格式化的时候,操作系统自动将硬盘分成两个区域。一个是数据区,存放文件数据;另一个是inode区(inode table),存放inode所包含的信息。

每个inode节点的大小,一般是128字节或256字节。inode节点的总数,在格式化时就给定,一般是每1KB或每2KB就设置一个inode。假定在一块1GB的硬盘中,每个inode节点的大小为128字节,每1KB就设置一个inode,那么inode table的大小就会达到128MB,占整块硬盘的12.8%。

2. inodes资源耗尽

inodes使用完与存储空间使用完相似,都是创建不了文件或无法正常执行一些命令。inodes使用完,存储空间可能还有,这种情况一般是生成了大量的小文件,把inode table占满。

一般情况下存储空间使用完,inodes往往才使用百分之几,所以容易忽视对inodes使用情况的监控。

借用网图来说明inodes用尽,而磁盘空间还未用完的情况:查看磁盘空间使用情况,使用df命令

查看inodess使用情况,使用df -i命令:

上述两个命令可以使用-h参数,命令为df -h和df -hi。从图中看见磁盘空间使用71%,但是inodes使用100%。

3. inodes耗尽解决

inodes的大小在磁盘格式化分区时确定,跟分区的大小相关,分区越大,inodes越大,反之亦然。

linux操作系统根目录一般分区比较小,如果有定时性的小文件产生而又未及时清理,则很容易造成inodes占满。

inodes占满解决步骤:

(1)查看文件最多的目录

for i in /*; do echo $i; find $i | wc -l; done

如果确定目录范围,把/*写的具体点

最终发现是/var/spool/postfix/maildrop目录下小文件过多,原因如下:由于linux在执行cron时,会将cron执行脚本中的output和warning信息,都会以邮件的形式发送给cron所有者。由于客户环境中的sendmail和postfix没有正常运行,邮件发送不成功,导致全部小文件都堆积在maildrop目录下,另由于缺乏自动清理的机制,故此目录下堆积了大量的文件。

经过排查root用户下发现有个每分钟进行一次时钟同步的定时任务,该定时任务每分钟产生一个小文件。

(2) 删除大量文件

ls | xargs -n 1000 rm -rf 需要使用xargs命令,不然会删除失败。

4. 总结

(1)设置方面在crontab -e 第一行增加MAILTO=“” ,就没有文件产生啦

(2)重定向对定时任务设置定向输出文件,不需要日志输出的定时任务可以将日志重定向到/dev/null,如下:

*/10 * * * * /tmp/test.sh 》/dev/null 2》&1

(3) 定时清理文件

find 目录 -type f -mtime +30 | xargs -n 1000 rm -f**

(4) 监控inodes的使用

备注:应注意crontab的写法和产生的文件的定时清理
责编AJX

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据
    +关注

    关注

    8

    文章

    7015

    浏览量

    88984
  • Linux
    +关注

    关注

    87

    文章

    11300

    浏览量

    209405
  • 操作系统
    +关注

    关注

    37

    文章

    6817

    浏览量

    123317
收藏 人收藏

    评论

    相关推荐

    Linux系统进程的几种状态介绍

    文章对 Linux 系统进程的几种状态进行介绍,并对系统出现大量僵尸进程和不可中断进程的场景进行分析,使用常用的几种工具进行问题分析定位。
    发表于 11-24 16:15 1.3w次阅读
    <b class='flag-5'>Linux</b><b class='flag-5'>系统</b><b class='flag-5'>下</b>进程的几种状态介绍

    Linux内核编译详谈

    Linux内核编译详谈
    发表于 08-04 00:36

    Linux中共享Windows系统资源

    Linux中共享Windows系统资源 在一部电脑上装有Linux和Windows的用户,可能需要在Linux中用到包括软盘、光盘以及Windows分区中的文件,如当你在Windo
    发表于 01-18 12:57 580次阅读

    linuxsamba服务器搭建配置

    linuxsamba服务器搭建配置是使用linux开发系统时经常要配置的一步,只有这频配置好,不系操作系统间才能
    发表于 03-19 18:59 13次下载

    基于Linux操作系统C语言编程入门

    基于Linux操作系统C语言编程入门
    发表于 10-27 15:36 11次下载
    基于<b class='flag-5'>Linux</b>操作<b class='flag-5'>系统</b><b class='flag-5'>下</b>C语言编程入门

    Linux内核编译详谈

    Linux内核编译详谈
    发表于 10-30 09:51 7次下载
    <b class='flag-5'>Linux</b>内核编译<b class='flag-5'>详谈</b>

    监视Linux系统资源的使用情况

    虽然说Linux操作系统要比Windows操作系统稳定的多。但是这个稳定是相对而言的。也就是说,Linux操作系统也会有闹脾气的时候。在某些
    发表于 11-03 12:39 0次下载

    Linux系统软硬链接原理

    Linux系统软硬链接原理
    发表于 11-23 08:49 1次下载

    Linux操作系统C语言编程入门.pdf

    Linux操作系统C语言编程入门
    发表于 05-17 10:08 96次下载

    Linux操作系统实用教程之如何进行Linux系统的编程管理

    本文档的主要内容详细介绍的是Linux操作系统实用教程之如何进行Linux系统的编程管理主要内容包括了:1.inux编程环境及工具2
    发表于 11-01 10:51 5次下载
    <b class='flag-5'>Linux</b>操作<b class='flag-5'>系统</b>实用教程之如何进行<b class='flag-5'>Linux</b><b class='flag-5'>系统</b><b class='flag-5'>下</b>的编程管理

    LINUX系统教程之如何在Linux系统进行编程

    本文档的主要内容详细介绍的是LINUX系统教程之如何在Linux系统进行编程主要内容包括了:程序开发过程 ,
    发表于 12-18 19:09 9次下载

    详谈Linux的find命令

    find 是 Linux 最有用的命令之一,熟练的使用它对于提高工作效率很有帮助。下面介绍它的一些用法
    的头像 发表于 06-23 09:43 3093次阅读
    <b class='flag-5'>详谈</b><b class='flag-5'>Linux</b>的find命令

    详谈Linux操作系统编程的互斥量mutex

    前文提到,系统中如果存在资源共享,线程间存在竞争,并且没有合理的同步机制的话,会出现数据混乱的现象。为了实现同步机制,Linux中提供了多种方式,其中一种方式为互斥锁mutex(也称之为互斥量)。
    的头像 发表于 09-28 15:09 2500次阅读
    <b class='flag-5'>详谈</b><b class='flag-5'>Linux</b>操作<b class='flag-5'>系统</b>编程的互斥量mutex

    如何在Linux系统开启wifi

    大家好,我是ST。今天主要和大家聊一聊如何在Linux系统开启wifi。
    的头像 发表于 10-08 09:21 4511次阅读

    如何在Linux使用wc命令统计目录文件

    尽管不是很经常需要知道,但有时您需要找出指定目录中有多少个文件。例如,Linux系统inodes用完,则需要查找哪个目录包含成千上万个文件。
    的头像 发表于 12-09 16:48 1836次阅读