磁盘空间和 inode
基础检查
df -h
df -i
lsblk
du -xhd1 /var
df -h看文件系统容量。df -i看 inode;大量小文件可在容量尚有余量时耗尽 inode。lsblk看磁盘和挂载关系,不等于文件系统使用量。du -x限制在一个文件系统内,避免误扫其他挂载。
不要直接对 / 运行成本巨大的递归扫描并同时在线上高峰操作。先从 /var、应用目录、日志目录和临时目录逐层定位。
高频增长来源
- Nginx、PM2、systemd 日志。
- 上传和转换临时文件。
- Docker 镜像、容器层和 JSON 日志。
- MySQL binlog、慢查询日志和备份。
- 崩溃转储、缓存和包下载。
文件删了,空间为什么没回来
进程仍持有已删除文件描述符时,目录项消失但磁盘空间仍占用:
sudo lsof +L1
应确认进程和文件,再通过日志轮转、reload 或有计划的服务重启释放。不要只因看到大文件就强杀进程。
正确处理
定位增长者,阻止继续增长,再安全轮转或清理。磁盘接近满时数据库可能无法写入,SSH、日志和包管理也可能失败;应配置容量、inode 和增长速率告警,而不是等到 100%。