1.现象

预发环境项目发布时,发现日志不再打印,上传的war包也无法释放,mmp;

2.查看磁盘空间

1
2
3
4
5
6
7
8
9
10
[root@jr-yfb-ng_tm-10-94 /]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 190G 190G 20k 100% /
devtmpfs 3.9G 0 3.9G 0% /dev
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 3.9G 193M 3.7G 5% /run
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/sda1 497M 125M 373M 25% /boot
tmpfs 783M 0 783M 0% /run/user/0
[root@jr-yfb-ng_tm-10-94 /]#

3.查看有哪些大文件

这里先查看下日志目录下超过一定阈值的大文件:

1
2
3
4
5
6
[root@jr-yfb-ng_tm-10-94 logs]# find . -size +100M
./catalina.out
......
./redis-quartz.2019-07-05.log
./redis-quartz.log
......

发现有很多超过100M的,还有超过500M的,先删除一波再说。

4.查看指定目录下文件的大小

查看下日志目录下各日志文件的大小,漏网之鱼都干掉。

1
2
3
4
5
6
7
8
9
10
11
12
13
[root@jr-yfb-ng_tm-10-94 logs]# du -sh *
56M catalina.2019-02-22.log
32M catalina.2019-03-26.log
8.0M catalina.2019-03-30.log
152K catalina.2019-04-01.log
20K catalina.2019-04-10.log
68K catalina.2019-07-02.log
......
0 manager.2019-07-05.log
0 redis-quartz.2019-07-04.log
725M redis-quartz.2019-07-05.log
1.1G redis-quartz.log
......

5.再次查看磁盘空间

1
2
3
4
5
6
7
8
9
10
[root@jr-yfb-ng_tm-10-94 /]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 190G 190G 20k 100% /
devtmpfs 3.9G 0 3.9G 0% /dev
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 3.9G 193M 3.7G 5% /run
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/sda1 497M 125M 373M 25% /boot
tmpfs 783M 0 783M 0% /run/user/0
[root@jr-yfb-ng_tm-10-94 /]#

很惊喜,一顿操作猛如虎,最后发现没有用。

删了一堆加起来得有大几十个G的文件,释放的空间呢?

6.查看文件使用情况

1
2
3
4
5
6
7
8
9
[root@CENTSVR247 logs]# lsof|grep deleted
zabbix_ag 1473 zabbix 1w REG 253,0 928 103495016 /tmp/zabbix_agentd.log (deleted)
zabbix_ag 1473 zabbix 2w REG 253,0 928 103495016 /tmp/zabbix_agentd.log (deleted)
zabbix_ag 1473 zabbix 3wW REG 253,0 4 103495017 /tmp/zabbix_agentd.pid (deleted)
zabbix_ag 1482 zabbix 1w REG 253,0 928 103495016 /tmp/zabbix_agentd.log (deleted)
zabbix_ag 1482 zabbix 2w REG 253,0 928 103495016 /tmp/zabbix_agentd.log (deleted)
zabbix_ag 1482 zabbix 3w REG 253,0 4 103495017 /tmp/zabbix_agentd.pid (deleted)
zabbix_ag 1483 zabbix 1w REG 253,0 928 103495016
......

发现很多文件是删除的状态,但是空间还未释放,应该是有进程还在使用这些文件,导致这些以被删除的文件一致被占用,无法释放磁盘空间。

7.释放空间

由于大量的文件虽然被删除了,但是还是被进程占用着,所以kill -9 pid,杀掉这些进程,或者重启这些进程对应的服务,再次查看磁盘空间,发现空间释放出一百多G。

1
2
3
4
5
6
7
8
9
[root@jr-yfb-ng_tm-10-94 logs]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 190G 30G 161G 16% /
devtmpfs 3.9G 0 3.9G 0% /dev
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 3.9G 193M 3.7G 5% /run
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/sda1 497M 125M 373M 25% /boot
tmpfs 783M 0 783M 0% /run/user/0

8.查看效果

查看下日志目录下的空间

1
2
[root@jr-yfb-ng_tm-10-94 tomcat-redis-task]# du -sh ./logs/
3.3G ./logs/

9.后续处理

清理了磁盘空间,这只是解决了目前的问题,合理的设置日志级别,在合理的地方埋点打日志,否则再大的空间也会撑满。

最后更新: 2020年01月17日 15:30

原始链接: https://java4all.cn/2019/08/16/磁盘耗尽问题处理/