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 s  -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=/
mysql下载哪个盘
这⾥删除邮件会⾃动存储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)
到进程,直接杀死即可(也可以通过重启操作系统解决)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。