Linux怎么查看具体的磁盘空间被占用的原因深度分析

雨强姑娘_7500

雨强姑娘_7500

2026-07-11

461人浏览

原创

最常见原因是已删除但被进程占用的文件;可用lsof +l1或find /proc/*/fd -ls | grep deleted定位,再通过sighup或kill释放,同时排除挂载覆盖、预留空间、快照等干扰。

linux怎么查看具体的磁盘空间被占用的原因深度分析

df -h 显示 100% 但 du 统计总和远小于实际用量

这种情况不是磁盘真满了,而是有文件被进程打开后删除了,空间没释放。df 统计的是文件系统级块占用,du 只统计目录树里还“可见”的文件,已删但未关闭的文件不会出现在 du 结果里。

执行以下命令确认:

lsof +L1

输出中带 (deleted) 标记、且 SIZE 列很大的行就是元凶。常见于:

  • java 进程持续写 catalina.out 后被 rm 删除
  • mysqld 持有旧 binlog 文件句柄
  • nginx worker 进程仍在追加写已被轮转删除的 access.log

临时解决:重启对应服务;长期解决:确保日志轮转后触发 kill -USR1 或 systemctl reload 让进程重新打开日志文件。

df -i 显示 IUse% 100% 但 df -h 还有空间

这是 inode 耗尽,典型表现是能读文件但无法创建新文件、No space left on device 错误持续出现,即使 df -h 显示还有几十 GB 空闲。

快速定位小文件爆炸源:

find /var -xdev -type f | cut -d/ -f 1-3 | sort | uniq -c | sort -nr | head -10

重点关注:

  • /var/log/journal/:systemd-journald 默认不设大小限制,可能积累数百万个微小日志对象
  • /var/spool/postfix/maildrop/:邮件队列积压
  • /tmp 或 /var/tmp 下大量临时碎片文件(如 Python 的 .pyc 缓存)

清理建议:

Zynq Linux Hardware Debug
Zynq Linux Hardware Debug

Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。

下载
  • 限制 journald:sudo systemctl edit systemd-journald,添加 RuntimeMaxUse=500M
  • 清空 postfix 队列:postsuper -d ALL(需先确认无关键邮件)
  • 慎用 rm -rf /tmp/*:某些服务可能正使用其中文件,建议先 lsof +D /tmp 检查

find 和 du 找不到大文件,但 /var/lib/docker 占用飙升

Docker 是隐藏空间大户,尤其在未配置清理策略的生产环境。du -sh /var/lib/docker 常显示十几 GB,但 du -sh /var/lib/docker/* 各子目录加起来却只有几 GB——说明空间藏在 overlay2 的未引用层或 dangling 镜像里。

精准释放步骤:

  • 查看真实镜像/容器/卷占用:docker system df -v
  • 清理悬空镜像:docker image prune -f
  • 清理已停止容器:docker container prune -f
  • 清理未被任何容器引用的 volume:docker volume prune -f
  • 强制清理所有构建缓存:docker builder prune -a -f

注意:docker system prune -a 会删掉所有未运行容器、网络、镜像和构建缓存,务必确认业务无依赖。

MySQL 二进制日志或慢查询日志占满 /var/lib/mysql

MySQL 的 mysql-bin.000xxx 和 slow.log 不受 logrotate 管理,容易失控增长。直接 rm 删除会导致 MySQL 启动失败或主从同步中断。

安全清理方式分两步:

  • 登录 MySQL 执行:PURGE BINARY LOGS BEFORE DATE_SUB(NOW(), INTERVAL 3 DAY);
  • 对慢查询日志:SET GLOBAL slow_query_log = 'OFF'; → truncate table mysql.slow_log; → SET GLOBAL slow_query_log = 'ON';

长期预防:

  • 在 my.cnf 中设置:expire_logs_days = 3(MySQL 5.7 及以前)或 binlog_expire_logs_seconds = 259200(8.0+)
  • 禁用慢查询日志除非必要:slow_query_log = 0
  • 避免将 datadir 和 log_bin 放在同一分区,防止日志撑爆数据目录

真正难处理的不是单个大文件,而是那些既不显眼、又持续增长、还绑定着运行时状态的东西——比如被进程 hold 住的 deleted 文件、inode 耗尽、Docker dangling layer、MySQL binlog 的生命周期管理。这些地方一疏忽,清理完立刻反弹。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

linux

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

2023.06.21

4010

4

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

2023.06.29

3413

10

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2023.06.30

2593

5

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

2023.07.05

6310

7

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

2023.07.06

5942

7

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.20

3473

8

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

2023.07.20

2965

4

linux查看cpu使用率
linux查看cpu使用率

在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。本专题为大家带来了linux查看cpu使用率的相关文章,感兴趣的朋友千万不要错过了。

2023.07.25

3199

6

linux查找文件命令
linux查找文件命令

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.31

297

3

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Python uv官方安装与入门文档
Python uv官方安装与入门文档

共0课时 | 0人学习

Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习