如何找到幻像存储使用情况?

mor*_*ant 3 mac-osx-server disk-space-utilization

我有一台 Mac OS X 10.6.4 Snow Leopard Server 文件服务器 (AFP),它在过去几周启动卷上的存储空间不足。用完 80GB 启动卷上剩余的 42GB 大约需要两天时间,即使 asudo du -chsx -I dev /仍然显示仅使用了 29GB。

过去我遇到过这种情况,Linux 服务器的 Apache 日志在 N 天后被删除,但日志仍被 Apache 保持打开状态,导致存储无法释放。在这种情况下sudo lsof,我已经能够相对容易地追踪它 w/a ,但是在这种情况下我不容易找到罪魁祸首(作为文件服务器,有大量打开的文件和套接字)。如何lsof按文件大小对输出进行排序(并以人性化的格式显示大小),以便找到罪魁祸首?

服务器有 3GB 的 RAM。启动 4 小时后,活动监视器显示 700MB 可用空间、1.5GB 非活动空间和 200GB 虚拟机。mdsVM 使用量最大,为 1.8GB,排AppleFileServer在第二位,500MB,其他所有东西都使用 10MB-75MB 的 VM。也就是说,/private/var/vm 只有 128MB。

重新启动系统清除了这个问题,因此我相信它是一些进程或进程仍然保持打开的可用存储空间。

任何其他假设、建议等,不胜感激。

Ben*_*cks 16

您可以通过以下方式找到最大的打开文件:

sudo lsof -s | awk '$5 == "REG"' | sort -n -r -k 7,7 | head -n 50
Run Code Online (Sandbox Code Playgroud)

这将列出按大小降序排列的常规文件(不是管道、套接字等),并取前 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
Run Code Online (Sandbox Code Playgroud)