菜鸟笔记
提升您的技术认知

已删除文件被锁无法释放磁盘空间-ag真人游戏

1.问题

相信大家在linux系统使用时,使用df 和du命令会经常碰到磁盘空间差距很大,du统计的数据往往比df的统计结果小。

为何会有这种情况出现,首要要区分df和du的命令的区别。

命令分析:

2.处理案例

 使用df命令查看磁盘分区使用情况,根分区总大小9.7g,used% 7.9g,use% 86%;使用du命令显示(排除掉较大的/usr分区,只统计一层目录),根分区使用不到2g。




    原因在于du是以文件名、目录名为依据计算空间使用的,而df是以硬盘块使用情况来计算空间使用的。linux系统当中,当一个应用程序在写一个文件时,此文件被删除,应用程序会占用句柄,并根据句柄所致磁盘位置直接写磁盘,而不会检查文件是否被删除。回到172.16.2.78机器,使用lsof查看是否存在此类情况,结果如下:

lsof显示结果:

看到结果与分析一致,其中占用最多的是pid号为28200的java进程,句柄号786451。占用约6.8g空间。最后接的(deleted)表明该文件已被删除掉。这是为什么du和df显示差别如下大,df使用block来计算空间使用,(deleted)掉的文件因被程序调用,被认为还在使用过程中,在统计时df标记这些块还被占用,而du从inode到文件名,到目录名来计算,被删的文件已经不存在inode指向。
可通过验证,可看到显示delete的文件,是不存在于系统之上的。

3.ag真人游戏的解决方案
检测到进程ip,如果是应用程序,可重新启动应用,以释放空间锁定。记住,是重新stop 再start,reload无法释放!

网站地图