关于超大目录数据异常增长的问题排查

发布时间:2024年01月14日

近期在整理一些运维问题处理笔记,这篇主要是记录排查思路转换,以及实用的排查方式,这是个比较简单的案例,希望有所帮助

情况描述:

某天,有一台服务器磁盘空间告警,我依稀记得磁盘分区有14T,平时数据量不会太大的,于是认为是异常的数据量,需要进行排查。

初步分析:

一、第一要务是解决告警,保障系统正常运行环境

1)先找找找可以清理的历史数据以及历史日志,一般有定时任务的,直接跑清理任务即可。

发现,由于前期上线认为分区很大,上线后没有添加清理任务;

如果是接手的项目,不知道哪里有定时任务怎么办?可以看看如下博客,排查定时任务。

一般定时任务位置:

查看 root 以及应用的部署用户(这里用appuser代替)下是否有定时清理任务
crontab -l -u appuser
crontab -l -u root

atq

或者 查看定时任务日志

grep -e 'sh|log' /var/log/cron

Linux 定时任务管理-CSDN博客?

2)尝试常规排查流程,通过 du 命令缩小范围,然后定位到磁盘占用高的目录

一般来说,像容器主机容量异常,一般都是容器应用的某些数据没有挂载出来,导致没有正常清理,不过这个不是容器主机,当然大致排查流程也是一样,就是目录不同罢了

du -sh /data

等了一会,发现没得反应呢?因为du 是遍历目录,然后计算总量的,目前14T,这个计算量大的很,此路不通。

3)发现磁盘使用率增速过快,每10分钟增长近100G

前面说了du计算不出来,上面的情况如何统计的呢?那当然是df ,df 直接从文件系统超级块获取容量。

  • 尝试iotop ,查看到磁盘写入速度非常快
  • iotop -op 查看IO较高的进程情况,发现这些进程都是应用的进程,另外无法获取排序
  • 通过 pidstat -d 5 5 生成磁盘读写情况,可以明显的看到进程、设备的读写情况

4)pwdx 查看进程的工作目录,lsof 查看进程写入的文件位置

5)针对应用和数据的处理,就不多赘述了,具体是应用逻辑BUG,导致数据循环写入

总结:

1)iotop 能更好的浏览大致情况,pidstat 能更好的确定问题范围

2)一个具体的解决办法并不能覆盖到所有的问题,重要的是思路,扩展一些广度

文章来源:https://blog.csdn.net/weixin_43839586/article/details/135585945
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。