一次线上服务器磁盘耗尽的问题排查处理
时间: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.后续处理
清理了磁盘空间,这只是解决了目前的问题,合理的设置日志级别,在合理的地方埋点打日志,否则再大的空间也会撑满。
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- hugo-站点变量
- hugo-页面变量
- 将hexo文章头转为hugo格式
- python 技术篇-使用pytesseract库进行图像识别之环境配置
- Linux 安装PicGo问题
- 【剑指Offer】对称的二叉树
- deepin下状态栏无法显示问题
- 【剑指Offer】二叉树的镜像
- Python实战之利用数据字典实现井字棋盘,
- scRNA-seq Clustering quality control
- Python实战之tkinter库画图,用canver画布教你画卡通人物!
- Python教程之正则表达式(基础篇)
- Python教程之正则表达式(提高篇)
- 【剑指Offer】树的子结构
- 【剑指Offer】合并两个排序的链表