我怎样才能find幻影存储的使用?

我有一个Mac OS X 10.6.4雪豹服务器文件服务器(AFP),在过去的几个星期里,它已经在启动卷上的存储空间里用完了。 即使sudo du -chsx -I dev /仍然显示只有29GB使用,80GB启动卷剩余的42GB大概需要两天的时间。

我以前遇到过这种情况,一个Linux服务器的Apache日志在N天后被删除,但是Apache仍然保持打开日志,导致存储不被释放。 在这种情况下,我已经能够比较轻松地追踪到它了,但是在这种情况下(不pipe是文件服务器还是大量打开的文件和套接字),我都不容易find罪魁祸首。 如何按照文件大小对lsof输出进行sorting(并以人性化的格式显示大小),以便我可以find罪魁祸首?

该服务器有3GB的RAM。 上升4小时后,活动监视器显示700MB空闲,1.5GB不活动和200GB虚拟机。 mds拥有最大1.8GB的虚拟机使用率, AppleFileServer占据第二位(500MB),其他一切都使用10MB-75MB的虚拟机。 也就是说,/ private / var / vm只有128MB。

重新引导系统清除了这个问题,因此我相信这是免费的存储空间,它仍然被一些进程或进程所保留。

任何其他的假设,build议等,非常感谢。

你可以find最大的打开文件:

 sudo lsof -s | awk '$5 == "REG"' | sort -n -r -k 7,7 | head -n 50 

这将按照大小按降序排列常规文件(不是pipe道,套接字等),并排在前50位。

你也可以看看哪个进程打开的文件最多,有类似的东西

 sudo lsof | awk '$5 == "REG" {freq[$2]++ ; names[$2] = $1 ;} END {for (pid in freq) print freq[pid], names[pid], pid ; }' | sort -n -r -k 1,1 

我会看看sudo lsof | grep deleted sudo lsof | grep deleted

sudo lsof +L1会显示删除的文件。 为了速度,将其与-Pn结合。

例如lsof -Pn +L1