Chinaunix首页 | 论坛 | 博客
  • 博客访问: 8140597
  • 博文数量: 594
  • 博客积分: 13065
  • 博客等级: 上将
  • 技术积分: 10324
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-26 16:44
个人简介

推荐: blog.csdn.net/aquester https://github.com/eyjian https://www.cnblogs.com/aquester http://blog.chinaunix.net/uid/20682147.html

文章分类

全部博文(594)

分类: 系统运维

2018-12-24 09:46:41

线上一台Linux服务器最近经常磁盘根分区满告警,
但不是普通的日志文件或数据文件过多过大,现象如下:


1)执行“df -h”查看各分区空间的使用情况
[root@XEN64 /]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1       9.8G  8.7G  535M  95% /
devtmpfs        7.7G     0  7.7G   0% /dev
tmpfs           7.7G     0  7.7G   0% /dev/shm
tmpfs           7.7G  666M  7.1G   9% /run
tmpfs           7.7G     0  7.7G   0% /sys/fs/cgroup
/dev/sda3        20G  3.3G   16G  18% /usr/local


可以看到根分区使用率超过了预警值,
进入根目录,查看根目录下各子目录的大小:
[root@XEN64 /]# du -sm *
0       bin
180     boot
0       dev
24      etc
3       home
0       lib
0       lib64
1       lost+found
1       media
1       mnt
32      opt
du: cannot access 'proc/17842/task/17842/fd/4': No such file or directory
du: cannot access 'proc/17842/task/17842/fdinfo/4': No such file or directory
du: cannot access 'proc/17842/fd/4': No such file or directory
du: cannot access 'proc/17842/fdinfo/4': No such file or directory
0       proc
2       root
666     run
0       sbin
1       srv
0       sys
96      tmp
5856    usr
221     var


进一步检查/usr目录:
[root@XEN64 /usr]# du -sm *
358     1.2-compat
164     bin
1       etc
1       games
33      include
912     lib
432     lib64
101     libexec
3269    local
1       man
46      sbin
547     share
1       src
0       tmp


对比du和df的结果,可以发现两者的已使用大小不一致,
du命令得到的已用大小远小于df命令已用大小,初步猜测存已被删除文件仍然有进程在写它,导致du命令发现不了。
如果允许,最简单的处理方式是重启机器,不然用下列命令找出被删除的,但仍然可能有进程在写它的文件:
pids=`ps aux|awk '{print $2}'`;for pid in $pids; do lsof -p $pid|grep del; done


见到庐山真面目:
[root@XEN64 /proc]# pids=`ps aux|awk '{print $2}'`;for pid in $pids; do lsof -p $pid|grep del; done
stati 28885 root    1w      REG        8,1 5969132048     409096 /tmp/process_monitor-root.log (deleted)
stati 28885 root    2w      REG        8,1 5969132048     409096 /tmp/process_monitor-root.log (deleted)
stati 28885 root    3u      REG        8,4   20480039   35651587 /data/consumer/log/consumer.log.5 (deleted)
consumer 29756 root    1w   REG        8,1 5969132048     409096 /tmp/process_monitor-root.log (deleted)
consumer 29756 root    2w   REG        8,1 5969132048     409096 /tmp/process_monitor-root.log (deleted)
consumer 29756 root    3u   REG        8,4   20480039   35651587 /data/consumer/log/consumer.log.5 (deleted)


果然是有大量的已经删除文件,办法要么重启,要么重启持有它们的进程,问题即可解决。
阅读(5267) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~