linux的inode暴增

author:skate
time:2012/04/26

linux的inode暴增

今天刚到公司,接收到一个报警短信,一个数据库的inode使用率达到99%

[root@DBtmp ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda8 20G 7.5G 11G 41% /
/dev/sda1 92M 14M 74M 16% /boot
none 12G 0 12G 0% /dev/shm
/dev/sda2 1.3T 1.2T 47G 97% /oracle
/dev/sda7 9.7G 56M 9.1G 1% /tmp
/dev/sda5 20G 303M 18G 2% /usr/local
/dev/sda6 9.7G 7.9G 1.3G 87% /var


[root@DBtmp ~]# df -hi
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sda8 2.5M 305K 2.2M 13% /
/dev/sda1 24K 39 24K 1% /boot
none 3.0M 1 3.0M 1% /dev/shm
/dev/sda2 165M 55K 165M 1% /oracle
/dev/sda7 1.3M 46 1.3M 1% /tmp
/dev/sda5 2.5M 4.0K 2.5M 1% /usr/local
/dev/sda6 1.3M 1.2M 25K 99% /var
[root@DBtmp ~]#

可以看到磁盘空间还有1.3G,而inode的使用率已经达到99%,推测是有很多小文件,导致把inode都使用完了

查看具体什么文件占用这么多的空间:
[root@DBtmp ~]# du -sh /var/spool/*
20K /var/spool/anacron
20K /var/spool/at
4.9G /var/spool/clientmqueue
20K /var/spool/cron
16K /var/spool/cups
32K /var/spool/exim
24K /var/spool/fax
8.0K /var/spool/imap
8.0K /var/spool/lpd
2.8G /var/spool/mail
8.0K /var/spool/mailman
8.0K /var/spool/mqueue
64K /var/spool/news
120K /var/spool/postfix
8.0K /var/spool/repackage
8.0K /var/spool/rwho
8.0K /var/spool/samba
8.0K /var/spool/squid
16K /var/spool/squirrelmail
8.0K /var/spool/up2date
8.0K /var/spool/uucp
8.0K /var/spool/uucppublic
8.0K /var/spool/vbox
24K /var/spool/voice
[root@DBtmp ~]#

可以看到“/var/spool/clientmqueue”和“/var/spool/mail”占用的空间最大

/var/spool/mail:
每个用户的具体邮件

/var/spool/clientmqueue:
文件变大的原因:系统启用cron功能,而cron的程序又有输出内容,这内容通过sendmail以邮件的形式发送给cron用户;首先把邮件放到这个目录下,然后等待MTA(mail transfer agent)把这里的邮件迁移到“/var/spool/mqueue”里,然后在发送到真正的目的地,目录“/var/spool/clientmqueue”变大的原因就是MTA没有及时处理这个目录下的邮件。


解决方法:
1.把cron程序的输出都重定向到其他地方"> /dev/null 2>&1"
2.或者定期删除clientmqueue目录下的邮件,如下:
#for rm /var/spool/clientmqueue/*
08 02 * * * ls /var/spool/clientmqueue | xargs rm -f > /dev/null 2>&1


临时清除/var/spool/clientmqueue/目录下的文件:
[root@DBtmp ~]# cd /var/spool/clientmqueue
[root@DBtmp ~]# rm -rf *
如果文件太多,占用空间太大,用上面命令删除慢的话,就执行下面的命令:
[root@DBtmp ~]# cd /var/spool/clientmqueue
[root@DBtmp ~]# ls | xargs rm -f


说明:
inode的概念:http://blog.csdn.net/wyzxg/article/details/2134656

------end-----

你可能感兴趣的:(linux的inode暴增)