linux发现inodes目录adump,Linux 系统 inodes 资源耗尽,如何解决?

1460000038890152

inodes介绍

Linux系统下文件数据储存在"块"中,文件的元信息,例如文件的建立者、文件的建立日期、文件的大小等。这种储存文件元信息的区域就叫作inode,中文译名为"索引节点"。inode也占用硬盘空间,硬盘格式化的时候,操做系统自动将硬盘分红两个区域。一个是数据区,存放文件数据;另外一个是inode区(inode table),存放inode所包含的信息。node

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

inodes资源耗尽

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

通常状况下存储空间使用完,inodes每每才使用百分之几,因此容易忽视对inodes使用状况的监控。post

借用网图来讲明inodes用尽,而磁盘空间还未用完的状况:查看磁盘空间使用状况,使用df命令1460000038890151查看inodess使用状况,使用df -i命令spa

1460000038890153

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

inodes耗尽解决

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

linux操做系统根目录通常分区比较小,若是有定时性的小文件产生而又未及时清理,则很容易形成inodes占满。code

inodes占满解决步骤:blog

一、查看文件最多的目录索引

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用户下发现有个每分钟进行一次时钟同步的定时任务,该定时任务每分钟产生一个小文件。

二、删除大量文件

ls | xargs -n 1000 rm -rf  #须要使用xargs命令,否则会删除失败。

总结

一、设置方面在crontab -e 第一行增长MAILTO="" ,就没有文件产生啦

二、重定向对定时任务设置定向输出文件,不须要日志输出的定时任务能够将日志重定向到/dev/null,以下:

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

三、定时清理文件

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

四、监控inodes的使用

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值