linux磁盘占用很大 但找不到大文件,Linux磁盘被占用找不到占用文件,如何解决?...

Zabbix发信提示根磁盘空间使用已>80%,登录Linux主机后,一顿检查发现,磁盘空间确实占用了80%,但是居然找不到什么文件占用了磁盘空间??

一、问题点现象说明

1.1 查看磁盘使用情况(如下图),显示根磁盘空间已用‘56G’

[root@public46 ~]#df -h

207292fba068c731b6a11e9d2ed71d8d.png

1.2 查看各目录的磁盘占用情况

[root@public46 ~]#du -h --max-depth=1 /

52628f2d853f70b30c9cb439256d7aba.png

从上图可以发现,除去/web目录,根目录也就用了10G左右的磁盘空间,为什么会显示已用‘56G’呢?

二、问题点排查

2.1 查看根磁盘空间的node节点使用情况:正常

81a925a8ade13a1628c343721635f2cc.png

2.2 查找根磁盘,大小>100M的文件(排除了“/web”目录):正常

[root@public46 ~]# find / -path "/web" -prune -o -size +100M \

-print0 |xargs -0 du -sh

02a88c75ed8d26171e5e82b4ecafaaee.png

参数说明:

-path "/web" -prune:排除了“/web”目录进行条件搜索

2.3 用‘lsof’命令检查进程的文件句柄情况:异常

[root@public46 ~]#yum -y install lsof

[root@public46 ~]#lsof -n / |grep deleted

112fe894a838ff4e4fed94937e7ce521.gif

原因:上图可以发现,大量文件已经删除,但是有两个进程‘iostat’和‘zabbix-server’仍然占用着文件句柄,导致删除的文件的磁盘空间一直没有释放!

三、问题点解决

原因找到,问题就很好解决了,重启或者kill掉占用的进程即可

3.1 批量关闭iostat进程(如果只有一个进程,可以直接kill掉)

[root@public46 ~]#ps aux |grep iostat|gawk '{print $2}' |xargs kill -9

3.2 重启zabbix-server进程

[root@public46 ~]#systemctl restart zabbix-server

3.3 再次查看磁盘使用情况

[root@public46 ~]#df -h

463c550571e5eb302553cfb3c9a44ba9.png

磁盘空间使用情况已经恢复正常!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值