Magento 2 服务器磁盘接近 100% 时,后台保存、Session、索引和数据库都可能开始报错。处理目标不是“随便删点东西”,而是先找到增长来源,再清理明确可恢复或可归档的数据。
从文件系统开始
df -h
df -i
df -h 看容量,df -i 看 inode。大量小 Session 或缓存文件可能耗尽 inode,即使容量还有剩余也无法创建新文件。
定位 Magento 项目中的大目录
du -xhd1 /var/www/magento | sort -h
du -xhd1 /var/www/magento/var | sort -h
du -xhd1 /var/www/magento/pub/media | sort -h
把路径替换成实际项目目录。-x 避免跨越其他挂载点。不要在不确认当前路径时执行递归删除。
最常见的五类占用
- var/log:重复异常或调试日志持续增长。
- var/report:大量错误报告长期未归档。
- var/cache 与 page_cache:文件缓存未正确清理。
- pub/media:商品原图、缓存图、导入文件和重复媒体。
- 备份与导出:数据库 dump、订单 CSV 或迁移包留在项目目录。
文件删了,空间为什么没回来
进程仍持有已删除文件句柄时,目录中看不到文件,但磁盘仍被占用。可以使用:
lsof +L1
找到对应进程后,按服务流程重新打开日志或平滑重载,不要直接杀死未知数据库进程。
数据库不一定在项目目录
如果项目目录并不大,检查 MySQL 数据目录、binlog、OpenSearch 数据和容器存储。数据库文件不能通过文件系统手工删除,应使用各服务自己的保留和清理策略。
紧急释放空间后,给日志、备份和导出文件设置保留周期,并监控目录增长速度。磁盘告警的价值在于提前处理,等到 100% 再清理,往往已经伴随索引或数据库异常。

