扫码阅读
手机扫码阅读
为什么文件删除了但磁盘空间没有释放?
![](/theme/default/default/images/main/eye-open.png)
我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。
![](/theme/default/default/images/main/icon-link.png)
![](/theme/default/default/images/main/icon-jing.png)
咸鱼运维杂谈
扫码关注公众号
案例现象
服务器根目录磁盘空间告警提示超过80%,登录服务器发现确实磁盘空间不足。通过检查,发现/var目录占用75G空间,而/var/log目录中的nginx访问日志文件access_log单独占用66G。由于日志未进行切割且长时间未清理,导致空间占用过大。
删除操作
执行删除access_log文件操作后,发现磁盘空间并未释放,这通常是由于文件被某进程锁定或有进程持续写入数据导致。
文件存储结构学习
Linux系统中,文件存储在由多个扇区组成的块(block)中,这些块是文件存取的最小单位。文件的元信息存放在inode中,包括文件大小、拥有者、时间戳等。系统通过inode号找到文件数据所在的block并读出数据。删除文件时,inode会被删除,但如果文件被进程锁定,则inode不会被清除,系统因此认为文件尚未删除。
解决问题
使用lsof命令发现nginx进程锁定了access_log文件,并持续写入数据,导致即使文件被删除,磁盘空间也未被释放。解决方法包括重启nginx进程或系统,但在生产环境不建议这样做。推荐的方法是在线清空文件,即可释放磁盘空间且不中断进程。
想要了解更多内容?
![](/theme/default/default/images/main/icon-link.png)
![](/theme/default/default/images/main/icon-jing.png)
咸鱼运维杂谈
扫码关注公众号
咸鱼运维杂谈的其他文章
加入社区微信群
与行业大咖零距离交流学习
![](https://cdn.easycorp.cn/rongpm/upload/202312/f_39217d624bb2b42ce8f6322ebd7e573a.png)
![](https://cdn.easycorp.cn/rongpm/upload/202312/f_39217d624bb2b42ce8f6322ebd7e573a.png)
软件研发质量管理体系建设
白皮书上线