一起Linux操作系统部署的Mysql数据库服务器/目录空间占用异常的分析事例

53 篇文章 0 订阅
27 篇文章 0 订阅
文章描述了一台运行Linux的MySQL数据库服务器每小时出现一次根目录空间占用高峰的现象。通过监控和使用`du`、`lsof`命令分析,发现是由于mysqld进程在`/tmp`目录下生成并删除大容量临时文件导致。解决方案是通知MySQL数据库团队检查并优化其定期任务。
摘要由CSDN通过智能技术生成

 一台Linux操作系统部署的Mysql数据库服务器平时“/"目录占用很低,但每个小时都会出现一次根目录空间占用高的情况,本文系从OS侧对异常事件进行分析排查的过程。

1、初步分析

主机已进行监控,分析监控图表

 可见该数据库服务器日常根目录占用在20%,每个小时会出现一个峰值,根占用增到80%左右,目录空间大小占用的采样粒度为每5分钟采样一次,按采样值定位报告如下图

 可见每个小时第8分钟的前后4分钟即可能会是异常时段,之后即会恢复正常。

2、深入跟踪

首先尝试用du来抓取大文件

指令:

# watch 'du -h -d1 / 2>/dev/null' 
Every 2.0s: du -h -d1 / 2>/dev/null                                                                                                 Fri May 19 11:12:32 2023

113M    /boot
0       /dev
0       /proc
809M    /run
0       /sys
32M     /etc
832K    /root
307M    /var
356K    /tmp
1.3G    /usr
915M    /home
0       /media
0       /mnt
202M    /opt
0       /srv
2.9G    /tools
633G    /app
639G    /

对根下1层的目录进行空间占用跟踪。实际操作在问题时段没有抓取到目录空间有异常。根据经验,这种情况应该是文件生成过程中有删除操作,有删除标识的在用文件不会统计到目录空间占用里来。联系到监控数据显示空间占用后会恢复,因此可以确定必然有文件删除动作伴随,改以监控文件删除情况来入手定位问题原因。

以下指令(在openeuler22.03平台测试通过,shell指令,其它Linux也应无误):

# lsof |grep delete |sort -nrk 8
zabbix_ag  6594        zabbix    2w      REG              253,0        761   50695552 /var/log/zabbix/zabbix_agentd.log-20210916 (deleted)
zabbix_ag  6594        zabbix    1w      REG              253,0        761   50695552 /var/log/zabbix/zabbix_agentd.log-20210916 (deleted)
salt-mini  8655          root    6w      REG              253,0       1751   17422681 /var/log/salt/minion-20230428 (deleted)
mysqld    17665           dpm   12u      REG              253,0          0   17094890 /tmp/ibXK7PPH (deleted)
mysqld    17665           dpm    7u      REG              253,0     123582   16983485 /tmp/ibw2ey6x (deleted)
mysqld    17665           dpm    6u      REG              253,0          0   16983481 /tmp/ib2TGg4h (deleted)
mysqld    17665           dpm    5u      REG              253,0          0   16983476 /tmp/ibt9PY0a (deleted)
mysqld    17665           dpm    4u      REG              253,0          0   16983466 /tmp/ib4ggHX3 (deleted)
sshd      32667          ygpt  txt       REG              253,0     970920     864548 /usr/sbin/sshd;642530f7 (deleted)
sshd      32663          root  txt       REG              253,0     970920     864548 /usr/sbin/sshd;642530f7 (deleted)
mysqld    17665  9991     dpm    7u      REG              253,0     123582   16983485 /tmp/ibw2ey6x (deleted)
mysqld    17665  9639     dpm    7u      REG              253,0     123582   16983485 /tmp/ibw2ey6x (deleted)
mysqld    17665  9127     dpm    7u      REG              253,0     123582   16983485 /tmp/ibw2ey6x (deleted)
mysqld    17665  8631     dpm    7u      REG              253,0     123582   16983485 /tmp/ibw2ey6x (deleted)
......

过滤当前删除但未释放空间的文件并按文件大小进行排序。

考虑到监控5分钟的粒度问题,从4分开始进行watch操作,并对排在前面的信息进行同步录屏,反指令:

# watch 'lsof |grep delete |sort -nrk 8 '

在录屏2分钟后(即整点后第6分钟左右),开始出现大文件(1G)删除操作

 在录屏3分钟左右即整点后第7分钟左右),出现文件大小峰值(8.6G)的文件删除操作

 相关大文件均是位于/tmp目录下的临时文件。

视频文件如下:

Video_20230519100921

lsof命令的输出字段如下:

COMMAND     PID   TID    USER   FD      TYPE             DEVICE   SIZE/OFF       NODE NAME

对应监控结果分析可知,系dpm帐户每个小时以mysqld命令调用在/tmp目录下生成了近9G的临时文件,然后又删除了。

3、处置措施

因是数据库系统的定时操作,故通知Mysql数据库侧对期定期任务进行排查处理,本次根目录空间占用问题定位完成。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

代先生.重庆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值