云服务器磁盘满了怎么办:定位大文件、清理与扩容的三步处理

举报
yd_292548114 发表于 2026/11/07 09:24:09 2026/11/07
【摘要】 云服务器磁盘满了怎么办:定位大文件、清理与扩容的三步处理磁盘空间满了是云服务器上最常见、也最容易被忽视的故障之一。磁盘一满,数据库写不进去、日志打不出来、网站直接报 500,甚至连 SSH 登录都会变慢。很多小项目第一次出问题就是栽在这里。本文记录一套实操流程:先定位、再清理、最后才是扩容。 第一步:确认是哪块盘满了先用 df -h 看整体情况,重点关注根分区 / 的使用率。一般超过 85...

云服务器磁盘满了怎么办:定位大文件、清理与扩容的三步处理

磁盘空间满了是云服务器上最常见、也最容易被忽视的故障之一。磁盘一满,数据库写不进去、日志打不出来、网站直接报 500,甚至连 SSH 登录都会变慢。很多小项目第一次出问题就是栽在这里。本文记录一套实操流程:先定位、再清理、最后才是扩容。

第一步:确认是哪块盘满了

先用 df -h 看整体情况,重点关注根分区 / 的使用率。一般超过 85% 就要处理,不要等到 100%。

df -h

如果根分区满了,再用 du 按目录找大户。直接对根目录跑 du -sh /* 容易被 /proc、/sys 这类虚拟文件系统干扰,建议加上 --exclude 排除:

du -sh /* --exclude=/proc --exclude=/sys 2>/dev/null | sort -rh | head -10

找到最大的目录后逐层往下钻,比如 /var 占了 30G,就继续 du -sh /var/* | sort -rh | head。两三层就能定位到具体元凶。

如果想更快,可以装 ncdu:apt install ncdu 或 yum install ncdu,跑 ncdu / 就能在终端里交互式浏览各目录大小,按 d 还能直接删除,比反复敲 du 省事得多。

第二步:清理最常见的四类空间占用

定位到大文件之后,先分清能不能删。按出现频率排序:

1. 日志文件。 /var/log 是重灾区。先看最大的日志文件是哪个服务产生的,再决定是删还是轮转。临时救急可以直接清空正在写的文件,注意要用重定向而不是 rm:

: > /var/log/nginx/access.log

直接 rm 正在被进程写的文件,磁盘空间并不会释放——进程还握着文件句柄,空间要等进程重启才回收。用 : > 截断文件,空间立刻释放,服务也不用重启。事后记得给这个日志配上 logrotate,避免下次再满。

2. Docker 镜像与容器日志。 跑 Docker 的机器要重点查两处:一是 docker system df 看镜像、容器、卷各占多少;二是容器日志,默认 json-file 驱动的日志不限制大小,单个容器能写出几十 G。清理命令:

docker system prune -a --volumes

但要注意,prune -a 会删掉所有未被使用的镜像,--volumes 会删匿名卷,生产环境执行前先确认没有要保留的数据。根治办法是在 /etc/docker/daemon.json 里给日志加轮转:

{
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "10m",
    "max-file": "3"
  }
}

改完重启 Docker 生效。

3. 包管理缓存。 Debian/Ubuntu 的 apt clean、CentOS 的 yum clean all 能清掉几百兆到几 G 的安装包缓存,安全无副作用,顺手做。

4. 已删除但未释放的文件。 如果 df 显示满了,du 却算不出那么多空间,大概率是被删的文件还被进程占着。用 lsof | grep deleted 找出来,重启对应服务或杀掉进程即可释放。

第三步:清理不够再扩容

如果清理完还是不够用,或者数据本身就是业务增长带来的,那就该扩容了。华为云上流程是:控制台给云硬盘扩容 → 服务器里执行 growpart 扩分区 → resize2fs(ext4)或 xfs_growfs(xfs)扩文件系统。注意顺序不能反,先云上扩、再系统里扩。扩容前先做快照,万一操作失误还能回滚。

扩容之后顺手做两件事:一是给磁盘使用率设个告警,华为云的云监控可以按 80%、90% 两档发短信或邮件;二是把这次清理出的规则固定下来——日志轮转、Docker 日志上限、定期 apt clean,写进运维清单,下次就不用再救火。

小结

磁盘满了的处理顺序是固定的:df 确认 → du/ncdu 定位 → 区分能删不能删 → 清理日志、镜像、缓存 → 不够再扩容。大部分情况下清理就能解决,扩容是最后手段。关键是事后把告警和轮转配好,让问题下次在 80% 就被发现,而不是在 100% 才被发现。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。