生产故障:系统根目录空间异常占满

环境

操作系统:centos7.6

mysql版本:8.0.17

现象

客户反馈应用系统无法访问,登录操作系统执行df -h命令查看系统硬盘空间,发现根目录空间已使用100%,操作系统重启后根目录空间自动释放,才使用20%;

排查思路

  • 排查/tmp目录

        根据客户反馈的现象,我们首先想到的是程序bug导致在/tmp目录下写入了大量的临时文件,没有删除造成的,但是我们在/tmp目录下计算完空间发现/tmp目录下才20K,虽然有点质疑但是目前没有证据,换个思路继续排查。

  • 逐级排查根目录下所有的子级文件夹

        我们从根目录一级一级往下排查查看那个目录占用的空间比较异常,但是排查完发现这些子级文件夹占用的空间大小和根目录的空间相差很多,还有很大一部分的空间未找到归属。

        计算某个目录下所有子级文件夹的大小命令:du -d1 -h

        计算某个目录下所有子级文件夹(不包含子子级)大小的命令:du -h -x --max-depth=1

  • 查看系统异常日志

        从根目录下所有子目录的空间上没有发现问题,我们换个方向从系统日志入手开始排查,从系统日志中发现mysql异常信息,初步怀疑mysql导致的。

        查看系统日志命令:dmesg -T

  • 查看系统已删除但未释放空间的文件

        从系统日志中确定了mysql的方向之后,我们查看系统中已删除的但是未释放空间的文件都是那个进程造成的,排查发现都是mysql进程产生的临时表文件已删除但未释放空间,终于定位到问题。

        查看系统已删除未释放空间命令:lsof -w / | grep deleted

定位问题

目前定位到问题是mysql临时表文件产生的,就需要从应用系统中查找具体使用临时表的地方,考虑优化方案。

解决方案

优化方案1:对使用临时表的sql进行优化,尽量避免使用临时表;

优化方案2:msyql临时表文件默认目录是/tmp,可以考虑给更换目录,配置到存储目录;

在/etc/my.c

  • 7
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
生产环境中,可能会遇到各种系统故障案例,以下是一些常见的故障案例: 1. 网络故障:网络中断、丢包、延迟过高等问题可能导致服务无法正常访问或通信异常。 2. 服务器故障:服务器硬件故障、操作系统崩溃、内存泄漏等问题会导致服务不可用或性能下降。 3. 数据库故障数据库连接问题、数据库崩溃、数据损坏等会导致数据读写异常或完全无法访问数据库。 4. 负载过高:当流量超出系统处理能力时,服务可能会变得缓慢或完全不可用,这可能是由于配置不合理、代码性能问题或DDoS攻击等原因引起的。 5. 安全漏洞和攻击:系统可能受到各种安全漏洞和攻击,如DDoS攻击、SQL注入、跨站脚本攻击等,这可能导致服务中断、数据泄露或篡改。 6. 依赖服务故障:如果系统依赖的外部服务出现故障或变得不稳定,可能会影响到系统的正常运行。 7. 配置错误:错误的配置文件、错误的参数设置等可能导致系统出现功能异常或性能问题。 8. 日志和监控故障:如果日志和监控系统出现故障,可能会导致问题难以排查和监控系统无法及时发现异常。 这些故障案例只是举例,实际上生产环境中可能会遇到更多种类的故障。为了应对这些故障,通常需要进行良好的监控、预警、备份和故障恢复策略,并进行定期的系统维护和更新。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

吉量*

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

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

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

打赏作者

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

抵扣说明:

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

余额充值