AWS EC2 Linux实例/dev/xvda1显示100%占用,du统计根目录仅用9.2G
AWS EC2 Linux实例根分区空间异常排查方案
1. 排查已删除但未释放的孤儿文件
进程打开的文件被删除后,磁盘空间不会立即释放,df会统计为已占用,但du无法检测到这类文件。
- 执行命令查找:
sudo lsof | grep deleted - 处理方式:找到输出中对应的进程,优先重启该进程;若无法重启,可终止进程释放空间。注意:核心服务进程(如数据库、Web服务)需谨慎操作,提前备份数据。
2. 检查挂载点下的隐藏文件
若在挂载其他分区前,根分区的挂载点目录(如/mnt、/media)已写入文件,挂载后这些文件会被隐藏,du -x会跳过挂载点导致统计遗漏。
- 临时卸载挂载点(确保挂载点无正在使用的文件)后查看:
sudo umount /mnt du -sh /mnt - 或直接查找根分区内的大文件(限制仅扫描当前分区):
find / -xdev -type f -size +1G | sort -h - 处理方式:备份隐藏文件后删除,重新挂载分区。
3. 查看文件系统保留空间
ext系列文件系统默认会为root用户保留5%的磁盘空间,用于系统紧急操作,这部分空间会被df统计为已用,但du无法统计。
- 查看保留空间设置:
dumpe2fs /dev/xvda1 | grep -i reserved - 调整保留空间(按需操作,不建议设为0):
上述命令将保留空间调整为总容量的1%。sudo tune2fs -m 1 /dev/xvda1
4. 检查文件系统一致性
磁盘文件系统可能存在错误,导致空间统计异常。
- 卸载分区后执行文件系统检查(需确保实例处于单用户模式或已卸载分区,避免损坏数据):
sudo umount /dev/xvda1 sudo fsck /dev/xvda1 - 处理方式:修复检测到的文件系统错误后,重新挂载分区查看空间。
5. 排查特殊文件与稀疏文件
部分稀疏文件、大日志文件或特殊文件可能导致df与du统计差异,可直接扫描根分区内的大文件:
find / -xdev -type f -exec ls -lh {} \; | sort -k5 -nr | head -20
找到大文件后,确认是否为必要文件,非必要则备份后删除。
内容的提问来源于stack exchange,提问作者rahul mishra
相关产品推荐
相关产品推荐

