var分区不足%15问题处理

现象 描述
        凌晨收到值班同事电话,一台DB服务器var分区报警,显示磁盘空间(inodes)不足%15,具体告警内容如下:
         Free inodes is less than 15% on volume /var
题分析
        收到电话后第一印象可能是由于/var/log下的日志、/var/spool/clientmqueue导致var分区占用空间较大。
处理步
        登陆服务器,通过df -h 查看磁盘空间使用情况。
         df -h
        Filesystem      Size  Used Avail Use% Mounted on
        /dev/sda7       6.0G  493M  5.2G   9% /
        tmpfs            32G     0   32G   0% /dev/shm
        /dev/sda1       124M   57M   62M  49% /boot
        /dev/sda8       1.1T   84G  929G   9% /home
        /dev/sda2       6.0G  2.1G  3.6G  37% /usr
         /dev/sda3       4.0G  1.7G  2.2G  44% /var
         发现磁盘使用空间还有很多,为什么zabbix监控会报出var磁盘分区不足%15的使用情况呢?告警内容已经提示是inodes不足,下面就给出答案:
         df -i
        Filesystem       Inodes  IUsed    IFree IUse% Mounted on
        /dev/sda7        393216   9179   384037    3% /
        tmpfs           8240103      1  8240102    1% /dev/shm
        /dev/sda1         32768     46    32722    1% /boot
        /dev/sda8      71000064  12127 70987937    1% /home
        /dev/sda2        393216  87909   305307   23% /usr
        /dev/sda3        262144 222981    39163   86% /var          
        这里我们看到var分区的inode使用情况已经不足%15了,因此我们可以明白为什么会收到那条告警信息了。了解了为什么,那么就具体寻找var下面哪个目录较大、零碎文件较多,从而清理分区空间。
        通过cd  /var/ ,通过du -hs * 发现磁盘空间最大的文件来自/var/spool目录,第一印象可能是 /var/spool /clientmqueue,但进入发现实际占用较大空间的是/var/spool/postfix/maildrop
这个目录,这个目录一般是系统邮件的回收站,删除、丢弃的邮件会放到这里,我们只需要删除这里的文件即可腾出多余的INode,从而减低/var空间使用率。
       cd /var/spool/postfix/ m aildrop
       ls | xarg -n 10 rm -rf
        df -i
        Filesystem       Inodes IUsed    IFree IUse% Mounted on
        /dev/sda7        393216  9179   384037    3% /
        tmpfs           8240103     1  8240102    1% /dev/shm
        /dev/sda1         32768    46    32722    1% /boot
        /dev/sda8      71000064 12127 70987937    1% /home
        /dev/sda2        393216 87909   305307   23% /usr
         /dev/sda3        262144  2409   259735    1% /var
        此时磁盘inode明显降低,告警也随之消除。
深入分
        为何/var/spool/postfix/maildrop目录会生成大量的文件?
        cat /etc/crontab   
        SHELL=/bin/bash
         PATH=/sbin:/bin:/usr/sbin:/usr/bin
         MAILTO=root
        HOME=/

         cat /etc/cron.d/0hourly
        SHELL=/bin/bash
        PATH=/sbin:/bin:/usr/sbin:/usr/bin
        MAILTO=root
        HOME=/
        这里删除邮件会自动存储root用户下的 /var/spool/postfix/ m aildrop目录中,我们可以通过以下方式避免:
        将MAILTO=root修改为MAILTO=空值即可,然后重启crond服务 ( service crond restart)。
扩展
        1)目录/var/spool/clientmqueue/也容易产生较多的零碎文件,其原因是由于系统中有用户开启了cron任务,而cron中执行的程序有输出内容,输出内容会以邮件形式发给cron的用户,而sendmail没有启动所以就产生了这些文件。解决办法如下:
            清理/var/spool/clientmqueue/下面的文件,cd /var/spool/clientmqueue/ ;ls |xargs -n 10 rm -rf ;
            查看产生/var/spool/clientmqueue/文件的内容,找到对应的具体cron任务
            将任务脚本输出添加  >/dev/null  2>&1
        2)如果通过df  -h 和 df -i发现 分区空间很大,但里面文件几乎没有,即磁盘空间没有被释放。导致这种原因一般是由于磁盘有些进程用到了这个分区下的文件,用户在没有停掉进程的情况下清理了这些文件,但进程还在,从而磁盘空间没有被释放。解决方法如下:
               lsof| gre p deleted
            mysqld     5668     mysql    5u      REG                8,3        0    1572866 /tmp/ibHVyCeJ (deleted)
            mysqld     5668     mysql    6u      REG                8,3        0    1572871 /tmp/ibW1Z6Gn (deleted)
            mysqld     5668     mysql    7u      REG                8,3        0    1572922 /tmp/ibz4HB91 (deleted)
            mysqld     5668     mysql    8u      REG                8,3        0    1572923 /tmp/ibFbld7k (deleted)
            mysqld     5668     mysql   12u      REG                8,3        0    1572924 /tmp/ibMFN1EZ (deleted)
            找到进程,直接杀死即可(也可以通过重启操作系统解决)
    




来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/27067062/viewspace-2126313/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/27067062/viewspace-2126313/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值