最近抢到6个月试用的ECS,挂上不重要的程序体验下。可是几天发现无法使用了,检查发现是程序BUG 造成硬盘满了(只是体验,只有/),删除后发现硬盘空间无法释放。由于比较忙就没有处理,下班后重启系统,硬盘才释放。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
遇到这种情况,通常是因为操作系统中的文件被删除后,空间没有立即释放,可能是由于以下几种原因:
打开的文件句柄:如果删除的文件在删除时仍被某个进程持有打开的文件句柄,操作系统可能不会立即回收该文件占用的空间,直到该进程关闭文件句柄或进程结束。
回收站机制:虽然Linux系统默认没有Windows那样的回收站机制,但某些图形界面或云服务商可能会有类似实现,确保误删文件可以恢复。检查是否开启了这样的功能,并确认是否需要清空。
inode问题:有时候,即使文件内容被删除,但对应的inode(索引节点)信息如果没有被清除,也可能导致空间未被释放。这通常发生在异常删除操作之后。
日志文件或临时文件:某些程序会生成大量日志文件或临时文件,这些文件可能迅速填满磁盘空间。即便删除了部分文件,如果程序仍在运行并持续生成这类文件,空间释放可能不明显。
针对您提到的情况,重启系统后空间得以释放,这很可能是因为重启过程中,所有之前运行的进程终止,它们所持有的任何文件句柄都被关闭,从而允许操作系统回收那些已删除文件所占的空间。
为了避免未来再次发生此类情况,您可以采取以下措施:
df -h
命令查看磁盘使用情况,用du -sh *
查找占用空间大的目录。希望这些建议能帮助您更好地管理和维护您的ECS实例。