西西软件园多重安全检测下载网站、值得信赖的软件下载站!
软件
软件
文章
搜索

首页 → 业内动态 → 业内资讯 → VPS磁盘100%后删除文件仍占空间的三类排查

VPS磁盘100%后删除文件仍占空间的三类排查

相关软件相关文章发表评论 来源:本站整理时间:2026/11/13 0:37:46字体大小:A-A+

ServLlamav2.0.0-alpha.2 服务器管理
  • 类型:系统工具大小:55.1M语言:英语 评分:10.0
  • 标签:
立即下载

VPS磁盘突然达到100%,最常见的误判是“删掉文件就一定释放空间”。实际排查时,容量耗尽、inode不足,以及文件已经删除但仍被进程打开,是三种不同故障。若直接执行 rm 或清理容器,可能误伤业务;若反复重启服务,又可能掩盖真正的占用来源。下面先用系统指标确认故障类型,再沿着日志、挂载点和容器层找到可安全回收的空间。

如果你正在选机器,或者想先把线路和配置跑通再谈长期方案,可以先看看这几家的线路说明和技术参数:zgovps(全球云服务器),先看清带宽线路、流量策略和退款条款,再决定要不要迁。

先分清:容量耗尽与inode不足

容量耗尽看的是数据块,df -h 可以显示磁盘已用空间;inode不足则是小文件过多,文件内容尚未写满磁盘,但系统已经无法继续创建文件。此时 df -i 会显示 inode 使用率为100%,而 df -h 可能仍有大量空闲容量。两类指标的排查重点完全不同:前者查大文件、旧备份和容器层,后者查缓存目录、临时文件及海量小文件。

VPS磁盘100%后删除文件仍占空间的三类排查

判断时不能只看根目录。VPS通常挂载了系统盘、数据盘、Docker目录或日志目录,不同挂载点拥有独立容量和inode。应先执行 df -hT、df -i,再对疑似目录使用 du -x --max-depth=1 逐层定位;使用 -x 是为了避免跨挂载点重复统计。特别要注意,du显示的空间小于df时,差额可能来自已删除但仍被进程持有的文件、文件系统保留空间或权限不足的目录。

这里有一个常见踩坑:看到df中的已用空间很大,就直接在根目录执行rm。清理前必须确认目录用途、文件是否仍被服务读取,并通过ionice、lsof等工具核对访问情况。inode告警也不应通过批量删除业务文件解决,应优先处理可重建的缓存、临时文件和过期日志。

沿着挂载点与容器层找真正占用

删除文件占用空间,通常是进程仍持有已删除文件的文件描述符。文件在目录中已经消失,du未必能统计到,但df仍会显示空间未释放。可用 lsof +L1筛选“已删除但仍打开”的文件,确认进程后再决定重启对应服务,或通过日志轮转正确关闭并重新打开日志句柄。不要直接删除进程正在写入的日志,否则可能造成日志丢失或服务异常。

VPS磁盘100%后删除文件仍占空间的三类排查

容器环境还要额外检查Docker的overlay2层、镜像、停止容器和JSON日志。docker system df适合先做空间盘点,但docker system prune会影响未被使用的镜像和缓存,执行前必须确认没有回滚需求。日志轮转策略应采用copytruncate或服务自身支持的 reopen方式,并配合log-opts限制单个日志大小;只配置轮转而不处理历史文件,无法解决已经积累的占用。

安全清理顺序建议固定为:先确认df、df -i和挂载点,再排查打开的已删除文件;随后处理明确过期的普通日志,再回收无用容器日志与镜像;最后才处理临时缓存,并重新检查容量与inode。ServLlama可用于集中展示主机、容器和磁盘阈值告警,帮助运维人员在达到80%或90%时提前介入,而不是等到100%才被动清理。对于overlay挂载、数据库目录和业务备份,清理前应保留可验证的恢复方案,避免把释放空间变成数据风险。

先分清容量耗尽与 inode 耗尽

df -h反映数据块用量,df -i反映inode用量,两者必须同时看。大量小文件即使没占满字节,也可能先耗尽inode,表现为创建文件时报No space left on device,但磁盘容量仍有剩余。用du --inodes -x / 2>/dev/null | sort -n定位目录,或用find /path -xdev -type f | wc -l统计文件数;ext4保留块等机制也会影响可见可用空间,最终以挂载点结果为准。

另一常见坑是文件已删,空间未释放。进程只要仍持有已删除文件的描述符,内核就会继续占用数据块,此时df与du差距明显。可用lsof +L1找到PID,确认影响后再重启进程或关闭并重开描述符;只执行rm不会释放这部分空间,也不要盲目终止未知进程。

VPS磁盘100%后删除文件仍占空间的三类排查

日志轮转、容器层回收与阈值告警

日志轮转应同时限制单文件大小、保留天数和目录总量。推荐采用“新建、压缩、重命名”流程,并让应用重新打开日志句柄;copytruncate存在复制与截断之间的丢日志窗口,句柄未重开时旧inode仍会占空间。还要避免多条规则重复处理同一日志,并监控压缩积压与轮转失败。

容器环境应区分镜像层、可写层、构建缓存、容器日志和数据卷。删除容器不等于删除卷,镜像与构建缓存也不会随容器立即释放;可用docker system df -v和du -xhd1 /var/lib/docker定位。清理前核对引用关系,按保留策略执行docker image prune、docker builder prune,不要把docker system prune -a --volumes当作日常命令。

告警不能只看容量百分比。应分别监控容量使用率、inode使用率、日志日增长量和预计耗尽时间,例如70%提醒、80%预警、90%紧急,inode采用同级阈值;再依据近七天增速预测剩余天数。告警要绑定具体挂载点,区分瞬时峰值与持续增长,避免总盘指标掩盖单个分区风险。

可执行检查清单:①df -h与df -i确认紧张的是容量还是inode;②du -xhd1及du --inodes -x定位大户;③lsof +L1排查已删除仍占用的文件;④核验日志轮转结果及句柄重开;⑤核对Docker镜像、缓存、日志和卷后再清理;⑥设置容量、inode、增长趋势的分级告警,并记录处置前后数值。

    相关评论

    阅读本文后您有什么感想? 已有人给出评价!

    • 8 喜欢喜欢
    • 3 顶顶
    • 1 难过难过
    • 5 囧囧
    • 3 围观围观
    • 2 无聊无聊

    发表评论

    昵称:
    表情: 高兴 可 汗 我不要 害羞 好 下下下 送花 屎 亲亲