磁盘空间与inode告急怎么办?英国服务器存储写满的5个常见问题排查
发布时间:2026-11-10
服务器磁盘写满后,网站可能打不开,数据库可能写入失败,SSH也可能登录异常。英国机房的服务器多数面向欧洲用户,也有不少跨境业务。从中国大陆访问英国,往返延迟通常约150-250毫秒,所以排查时尽量直接在服务器上清理,少把大文件下载到本地再处理。下面按照常见程度,列出5类问题。
问题一:df显示使用率100%,业务报错
表现:应用日志里出现No space left on device,上传失败,数据库停止写入。
可能原因:应用日志或访问日志没有轮转;上传目录或临时目录堆积了大文件;core dump文件没有清理。
排查步骤:先执行 df -hT,确认是哪个分区满了。然后用 du -xh / --max-depth=1 | sort -rh | head -20 逐层查找占用大的目录,也可以安装 ncdu 交互浏览。查找大文件可以用 find / -xdev -type f -size +500M。
快速修复:systemd日志可以用 journalctl --vacuum-size=500M 压缩到指定大小。检查 /etc/logrotate.d/ 中的配置,建议设置 daily、rotate 7、compress。确认无用的旧日志后再删除。
问题二:空间还有剩余,却提示No space left
表现:df -h 显示还有空间,但无法新建文件。
可能原因:inode耗尽,常见来源包括PHP session文件、缓存小文件、邮件队列。
排查步骤:执行 df -i 查看IUse%。再用 find / -xdev -type f | cut -d/ -f2-3 | sort | uniq -c | sort -rn | head 找出小文件最多的目录。
快速修复:批量清理过期文件可以用 find /var/lib/php/sessions -type f -mtime +2 -delete。邮件队列可以用 postsuper -d ALL 清空,执行前要先确认队列里没有需要保留的邮件。如果业务本身就会产生大量小文件,规划新分区时可以用 mkfs.ext4 -i 调小单个inode对应的字节数,或者改用XFS。
问题三:文件已经删除,空间却没有释放
表现:删掉了大日志,df的使用率没有变化。
可能原因:进程还持有该文件的句柄;日志轮转后程序没有重新打开新文件。
排查步骤:执行 lsof +L1 或 lsof | grep deleted,找到占用文件的进程和文件描述符。
快速修复:重启对应服务,例如 systemctl restart nginx。如果暂时不能重启,可以执行 truncate -s 0 /proc/PID/fd/N 释放空间。以后清空日志时,优先用 truncate,不要直接 rm。
问题四:容器镜像与系统缓存堆积
表现:/var/lib/docker 或 /var/cache 持续变大。
可能原因:旧镜像和停止的容器没有清理;容器日志没有设置上限;软件包缓存和旧内核残留。
排查步骤:用 docker system df 查看镜像、容器和卷各自的占用。用 du -sh /var/cache/* 检查系统缓存。
快速修复:执行 docker system prune -a 清理不再使用的资源。注意加 --volumes 参数会把数据卷一起删除,要谨慎使用。在 /etc/docker/daemon.json 中设置 log-opts 的 max-size 和 max-file,给容器日志加上限。软件包缓存可以用 apt clean 或 dnf clean all 清理,旧内核可以用 apt autoremove 移除。
问题五:数据库日志与本地备份占满磁盘
表现:MySQL数据目录或备份目录增长很快。
可能原因:binlog没有设置过期时间;备份脚本只写入、从不清理;慢查询日志长期开启。
排查步骤:在MySQL中执行 SHOW BINARY LOGS; 查看binlog的数量和大小,同时检查备份目录里的文件日期。
快速修复:如果有从库,先确认复制位点。之后执行 PURGE BINARY LOGS BEFORE NOW() - INTERVAL 3 DAY;,并在配置中设置 binlog_expire_logs_seconds。备份建议转存到独立的对象存储,本地只保留最近几份。
预防建议与合规提示
- 监控磁盘使用率和inode使用率,一般在80%时告警,可以用Prometheus Node Exporter或Zabbix实现。
- 清理任务的定时时间要注意时区,英国在GMT和BST之间切换,建议cron统一使用UTC。
- 日志和备份中如果包含个人数据,需要遵守UK GDPR和Data Protection Act 2018,保留期限按业务所需设定,不宜无限期留存。跨境传输或备份到其他地区时,还要遵守当地及中国大陆的相关法律法规。
- 执行删除或清空命令之前,先确认目标文件,重要数据先备份。