关于linux 磁盘占用排查问题

1.关于磁盘

查看整体磁盘占用大小
df -h  

在这里插入图片描述

2. 先排除mysql 数据大小

查询库的大小

SELECT table_schema AS "Database",
ROUND(SUM(data_length + index_length) / 1024 / 1024, 2) AS "Size (MB)"
FROM information_schema.TABLES
GROUP BY table_schema;

查询表的大小

SELECT table_name AS "Table",
ROUND(((data_length + index_length) / 1024 / 1024), 2) AS "Size (MB)"
FROM information_schema.TABLES
WHERE table_schema = "<database_name>";

将 <database_name> 替换为您感兴趣的特定数据库名

3.排除容器和docker 镜像大小

docker ps -a --size

docker images -a

4.查询最大的磁盘大小

如我上图所示,我这边查询前10

sudo du -hs /var/lib/docker/overlay2/* | sort -hr | head -n 10

然后这根据这个查到定位到容器

grep -r "00737c105dbeb49cbe25e4f3bcf14c8e6738ecf515026da89e3907e2749bfa83" /var/lib/docker/image/

如图所示,标记红色的框为容器ID,定位该容器是什么,排查问题
在这里插入图片描述
最后,查看该容器ID,是具体哪个容器,查看磁盘挂载情况,也可以进容器看下,是不是没有挂载的磁盘泄露了,例如我这里是图片本地图片忘记挂载了,里面占用了几十个GB磁盘大小

docker inspect [容器ID]
docker exec -it 0c40b0f51eacbd8fc97b12b2bd83b25394a5698349b9201040babd7fe3148f5d /bin/sh

5.可以查找大于100MB的文件,快速定位问题

sudo find / -type f -size +100M -exec ls -lh {
   } \;

例如我上面发现mysql-binlog 日志有点大
我根据时间倒序排列查询

sudo ls -lht /var/lib/mysql

只保留最近10天 bin-log删掉以前的,这个bin-log 特别占用磁盘,安全删除方式
登录msyql

mysql -uroot -p

在 MySQL 里删除旧的 binlog 文件:

使用 PURGE BINARY LOGS 命令删除旧的 binlog 文件。例如,如果您想删除 mysql-bin.000011 及之前的所有文件,运行:

PURGE BINARY LOGS TO 'mysql-bin.000012';

或者,您可以按日期删除:

PURGE BINARY LOGS BEFORE '2023-09-01 00:00:00';

6.mysql bin log 只保留最近10天数据

配置 vim /etc/my.cnf
在 [mysqld] 任意位置添加过期时间

expire_logs_days = 10

查看服务

sudo systemctl list-units --type=service

找到该服务重启

  sudo systemctl restart mysqld
  sudo systemctl status mysqld

此时发现磁盘已经释放了大多数了

相关推荐

  1. Linux问题常用命令

    2023-12-15 19:54:03       31 阅读
  2. 问题心得

    2023-12-15 19:54:03       25 阅读
  3. linux查看磁盘占用命令

    2023-12-15 19:54:03       45 阅读
  4. Linux 如何查看磁盘空间占用

    2023-12-15 19:54:03       31 阅读
  5. 日常问题技巧小结

    2023-12-15 19:54:03       37 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-15 19:54:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-15 19:54:03       100 阅读
  3. 在Django里面运行非项目文件

    2023-12-15 19:54:03       82 阅读
  4. Python语言-面向对象

    2023-12-15 19:54:03       91 阅读

热门阅读

  1. 力扣 145. 二叉树的后序遍历

    2023-12-15 19:54:03       57 阅读
  2. EasyCode代码生成模板

    2023-12-15 19:54:03       57 阅读
  3. Qt点击子窗口时父窗口标题栏高亮设计思路

    2023-12-15 19:54:03       61 阅读
  4. [Kadane算法,前缀和思想]元素和最大的子矩阵

    2023-12-15 19:54:03       60 阅读
  5. C# BlockingCollection实现线程间通信

    2023-12-15 19:54:03       60 阅读
  6. vue 导出el-table选择的数据使用笔记

    2023-12-15 19:54:03       52 阅读
  7. Linux中用rpm管理软件

    2023-12-15 19:54:03       42 阅读
  8. WPF中DataGrid的表格常见显示优化

    2023-12-15 19:54:03       57 阅读
  9. 网络安全之计算机网络基础知识<二>

    2023-12-15 19:54:03       59 阅读