Mac-Osx-Server

如何找到虛擬儲存的使用情況?

  • January 21, 2016

我有一個 Mac OS X 10.6.4 Snow Leopard Server 文件伺服器 (AFP),過去幾週它的啟動卷上的儲存空間已經用完了。大約需要兩天時間才能用完 80GB 引導卷上剩餘的 42GB,儘管sudo du -chsx -I dev /仍然顯示僅使用了 29GB。

我過去遇到過這種情況,Linux 伺服器的 Apache 日誌在 N 天后被刪除,但日誌仍然被 Apache 保持打開狀態,導致儲存沒有被釋放。在這種情況下,我能夠相對容易地找到它 w/a sudo lsof,但在這種情況下我不容易找到罪魁禍首(作為文件伺服器,有大量打開的文件和套接字)。如何lsof按文件大小對輸出進行排序(並以人類友好的格式顯示大小),以便找到罪魁禍首?

伺服器有 3GB 的 RAM。啟動 4 小時後,活動監視器顯示 700MB 可用空間、1.5GB 非活動空間和 200GB 虛擬機。mds最大的 VM 使用量為 1.8GB,AppleFileServer以 500MB 位居第二,其他一切都使用 10MB-75MB 的 VM。也就是說,/private/var/vm 只有 128MB。

重新啟動系統可以解決問題,因此我相信它是一些程序仍保持打開狀態的可用儲存空間。

非常感謝任何其他假設、建議等。

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

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

這將按大小降序排列正常文件(不是管道、套接字等),並取前 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

引用自:https://serverfault.com/questions/207100