删除文件后磁盘空间不释放
问题现象
当磁盘空间不够的时候,客户删除了文件以释放空间,但是发现删除了文件空间依然没有释放。
问题背景
文件系统的数据分为两个部分:数据部分和指针部分,当有进程正在使用某个文件是,执行删除命令,空间是不会释放的,删除的是数据文件部分,指针部分并未删除,所以空间并不释放;以下为真实案例,本实验使用的操作系统是ubuntu 16.04。
处理方法
-
执行
apt-get install lsof
命令安装lsof。 -
执行
lsof |grep delete | more
命令查看死文件占用情况。 -
如果这些文件过多,会占用很大的磁盘空间。可以通过如下方法来释放句柄,以清除僵尸文件
- 执行
kill -9 pid
命令正常停止或杀掉占用这些文件的服务进程。 - 执行清空命令如
echo " " > /tmp/nginx.log
,空间就会得到释放。 - 重启服务器。