腾讯云便宜服务器 腾讯云服务器磁盘空间突然满(100%)?寻找隐藏大文件的实战技巧
很多人第一次看到磁盘 100% 时,第一反应是“先删点文件”。我更建议你先停手:有些服务器不是“真满”,而是日志、删除未释放、inode 耗尽、Docker 残留、MySQL binlog 这些隐性占用。删错位置,轻则服务重启,重则数据库起不来。
如果你现在就是腾讯云 CVM 磁盘告急,先按下面顺序排查;如果你还在考虑买新实例、扩容磁盘、充值续费,也一起看后面的账号、实名、支付和风控部分,很多“买得起但用不了”的坑,往往不是技术问题,而是账号状态没过关。
先判断:是真的满,还是“看起来满”
先执行这三条,别急着删:
df -h
df -i
du -xhd1 / 2>/dev/null | sort -h
- df -h 100%:说明块空间紧张,写入会受影响。
- df -i 100%:不是容量满,是 inode 用光了,常见于小文件特别多的目录。
- du 看不出大文件,但 df 很满:大概率是“已删除但进程仍占用”的文件,或者某些挂载点被忽略了。
腾讯云便宜服务器 再补一条最容易救命的命令:
lsof +L1
这条命令会把“已经删除,但进程还握着句柄”的文件列出来。很多线上机器的磁盘空间,就是这样被日志吃掉的:文件删了,空间却不回收。
最常见的隐藏大文件位置,不要只盯着 /home
我见过最多的占用,不在业务目录,而在这些地方:
- /var/log:系统日志、nginx、php-fpm、crond、audit。
- /var/lib/docker:容器镜像、overlay2、容器日志。
- /var/lib/mysql:binlog、慢日志、临时表、误开大事务。
- /tmp 和 /var/tmp:压缩包、安装包、临时导出文件。
- /root:很多人把备份、脚本输出、下载包都堆在这里。
- 核心转储 core.*:程序崩溃后生成,单个文件几百 MB 很常见。
实操上,可以继续缩小范围:
du -xhd1 /var 2>/dev/null | sort -h
du -xhd1 /var/log 2>/dev/null | sort -h
du -xhd1 /var/lib 2>/dev/null | sort -h
如果你用了 Docker,重点看:
docker system df
du -sh /var/lib/docker/containers/* 2>/dev/null | sort -h
如果是 MySQL,重点看:
du -sh /var/lib/mysql
ls -lh /var/lib/mysql | grep -E 'binlog|relay|ib_logfile|mysql-bin'
真正的排查流程:按这个顺序,通常 10 分钟内能定位
- 腾讯云便宜服务器 看分区:先确认到底是根分区满了,还是数据盘满了。
- 看 inode:如果小文件太多,删大文件没用。
- 看 deleted but open:这是最容易被忽略的“幽灵占用”。
- 查日志轮转:logrotate 没生效,日志会无限长。
- 查容器:容器日志默认增长,很容易把盘打满。
- 查数据库日志:binlog 不清理,能持续吃掉几十 GB。
常用命令可以直接复制:
# 找出最大的一级目录
du -xhd1 / | sort -h
# 找出 1GB 以上文件
find / -xdev -type f -size +1G -exec ls -lh {} \; 2>/dev/null
# 找出最近 7 天持续增长的日志
find /var/log -type f -mtime -7 -exec ls -lh {} \; 2>/dev/null | tail
# 查被删除但仍占用的文件
lsof +L1
如果你已经无法登录,或者 SSH 卡顿得厉害,先用腾讯云控制台的云监控看磁盘曲线:突然拉满通常是某个任务跑飞了,而不是慢性增长。比如备份脚本误把数据库全量导出到了系统盘,半小时就能从 20% 冲到 100%。
要不要先扩容?先看成本,不要一上来就买盘
| 方案 | 适合场景 | 成本 | 风险 |
|---|---|---|---|
| 清理日志/缓存 | 临时爆满、可回收空间明确 | 最低 | 误删业务文件 |
| 扩容云硬盘 | 业务增长稳定、短期无法降载 | 中等,按新增容量计费 | 扩完仍要做文件系统扩展 |
| 迁移到更大规格实例 | 系统盘长期吃紧、CPU/内存也不够 | 最高 | 迁移窗口、兼容性、停机时间 |
实战里我建议这样决策:
- 只差 5%~10%:先清理,观察 1-3 天增长曲线。
- 每周都涨 10GB+:直接考虑扩容,不要反复救火。
- 数据库、容器、日志都在这块盘上:先分盘,再扩容。
另外提醒一点:扩容不是买完就结束。很多人只把云硬盘容量买大了,但文件系统没扩,系统里还是显示原大小。Linux 上通常还要做分区和文件系统扩展,Windows 也要在磁盘管理里重新识别。
如果你是新开腾讯云账号,先确认这些,不然后面扩容会卡住
不少用户磁盘满了以后才发现:账号还没实名、付款失败、风控没过、甚至地区不支持该支付方式。下面这些问题,往往比“怎么删文件”更先挡路。
1)实名认证没过,购买和扩容会受影响
腾讯云国际站或不同区域账号,常见会要求完成实名认证/企业认证后,才能顺利购买云服务器、云硬盘或更高额度资源。个人证件和企业资料不一致,很容易触发人工审核。
实操建议:
- 注册主体、付款卡片、账单地址尽量一致。
- 企业账号准备好营业执照、法人信息、公司邮箱。
- 如果是代开账号,不要频繁切换登录地区和网络环境。
2)充值续费要提前做,别等欠费停机
服务器磁盘一旦满了,你可能正忙着修问题,这时候最怕又遇到实例欠费。很多业务不是直接“停服务”,而是先进入限制状态,后面连控制台操作都不顺手。
我的建议是:
- 把续费方式设置成自动续费,至少覆盖核心业务。
- 余额只够几天的机器,优先续费再排障。
- 做告警:磁盘 80%、90%、95% 分别发不同级别通知。
3)支付方式不同,成功率差别很大
国际站里,常见支付是信用卡/借记卡、PayPal,部分地区支持本地化方式。问题往往不在“卡能不能刷”,而在账单地址、币种、3D 验证、风控阈值。
- 新卡第一次大额支付,容易被银行拦截。
- 账单地址和开户信息差太大,容易失败。
- 短时间连续下单、取消、重试,容易触发风控。
如果你在购买云服务器、扩容云盘时一直失败,先别重复提交十几次;先查卡是否开通境外支付、是否有 3D 验证、是否被银行拒付,再换浏览器或网络环境重试。
4)风控审核经常卡在“账号行为异常”
我见过最多的风控原因,不是资料不全,而是行为像“批量操作”:
- 同一张卡绑定多个账号。
- 频繁切换 IP、地区、浏览器指纹。
- 刚注册就买高配置、大批量资源。
- 腾讯云便宜服务器 企业资料和实际使用人不一致。
如果你准备长期使用,建议把账号稳定下来:一个主体、一个常用支付方式、一个主要登录地区。这样后续续费、扩容、开新实例都顺很多。
真实案例:为什么“删了文件”磁盘还是不回收
有个常见场景:某台腾讯云 Linux 机器,df -h 显示根分区 100%,但 du 统计下来,目录加总只用了 60 多 GB,理论上还剩不少。最后用 lsof +L1 查出来,Nginx 的访问日志被脚本删掉了,但进程一直没重载,句柄还占着 18GB;同时 MySQL 的 binlog 又吃了 11GB。最后处理顺序是:
- 先重载相关进程,释放已删除文件占用。
- 清理旧 binlog,保留最近可回滚窗口。
- 把日志切到独立数据盘。
- 把备份脚本改到对象存储,不再落地系统盘。
这类问题的核心不是“删多少”,而是占用来源是否会继续增长。如果增长源没关掉,今天清 20GB,明天还会再满。
常见问题:你大概率会踩的坑
Q:为什么 rm 了文件,空间没回来?
A:进程还开着文件句柄,执行 lsof +L1,先重启或重载对应服务。
Q:du 找不到大文件,但 df 还是满?
A:先查 inode,再查 deleted 文件,再看挂载点是否统计错了。
Q:清 /tmp 会不会出事?
A:要分时段看。线上最好先确认是否有任务在用,别直接全删。
Q:扩容后还是 100%?
A:多数是文件系统没扩,或者应用层日志继续暴涨。
Q:账号没实名,能先买服务器再补吗?
A:有些区域可以先用部分能力,但一旦涉及扩容、续费、较高额度资源,往往还是会被卡住,别指望后补一定顺利。
最后给一个更实际的处理顺序
- 先用
df -h / df -i / lsof +L1判断问题类型。 - 优先处理日志、容器、数据库、临时文件。
- 如果增长是持续的,尽快扩容或分盘,不要反复删文件。
- 如果你还要继续买、续、扩,先确认账号实名、支付方式和风控状态。
磁盘满这类问题,最怕的不是“没空间”,而是“明明知道要处理,却被支付、实名、欠费、审核卡住”。把排障和账号状态一起看,通常比只盯着文件目录更省时间。

