磁盘使用率大于90% 磁盘inode使用率大于90%

线上机器一直再报 磁盘使用率大于90%,发现/var/log/下边有个mail文件,很大就直接清理掉>mail 

但是这个问题反复出现,感觉一个没有什么业务的机器怎么磁盘使用率那么大 就查了下mail日志文件的形成

ps 发现有好多sendmail、postdrop进程

在网上查了下他们的关系才知道

crond在执行脚本的时候会将脚本输出信息通过调用sendmail发邮件给系统用户,sendmail有会调用postdrop发送邮件,由于postfile服务异常邮件没有发送成功,造成sendmail  postdrop无法正常退出

 

解决办法:

删除sendmail,postdrop进程,是内存降下来

ps -ef |grep 'mail'|awk -F" " '{print $2}'|xargs kill -9

ps -ef |grep 'postdrop'|awk -F" " '{print $2}'|xargs kill -9

关闭crond的邮件通知

修改/etc/crontab,/etc/cron.d/0hourly中MAILTO=root修改为MAILTO=""

crontab -e第一行增加一段MAILTO=""

 

修改crontab -e 遇到No space left on device

df -h 发现磁盘使用没有问题

df -i 发现/var下磁盘的inode使用量100%

find */ ! -type l | cut -d / -f 1 | uniq -c 发现/var/spool/postfix/maildrop有好多文件,这些文件就是sendmail发送失败,堆积在maildrop中

清理掉这个目录 发现sendmail,postdrop进程又出现了 然后重启crond,观察没有再出现

df -h显示磁盘占用是没有问题;但是df -i显示磁盘inode资源占用完。

inode译成中文就是索引节点,每个存储设备(例如硬盘)或存储设备的分区被格式化为文件系统后,应该有两部份,一部份是inode,另一部份是Block,Block是用来存储数据用的。而inode呢,就是用来存储这些数据的信息,这些信息包括文件大小、属主、归属的用户组、读写权限等。inode为每个文件进行信息索引,所以就有了inode的数值。操作系统根据指令,能通过inode值最快的找到相对应的文件。

这种情况的原因通常是:尽管那个分区的磁盘占用率未满,但是inode已经用完,应该是该磁盘的某些目录下存在大量的小文件导致。尽管小文件占用的磁盘空间并不大,但是数量太多,inode用尽。

 

你可能感兴趣的:(Linux)