一次线上服务器磁盘耗尽的问题排查处理

时间:2022-06-25
本文章向大家介绍一次线上服务器磁盘耗尽的问题排查处理,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

1.现象

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

2.查看磁盘空间

[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.查看有哪些大文件

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

[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.查看指定目录下文件的大小

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

[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.再次查看磁盘空间

[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.查看文件使用情况

[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。

[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.查看效果

查看下日志目录下的空间

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

9.后续处理

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