Macのディスクの容量がいっぱいです

f:id:toshi0383:20200423212627p:plain
Macのストレージがそろそろいっぱい

どんな大容量SSDMacを使っていてもなぜか定期的に遭遇するこの問題。

やはりこのご時世で自宅作業が増えたことでディスク容量が増える速度も以前とは比べ物にならないようです。 今日ビルド中に残り300MBになってすごくハラハラしました。

というわけで個人的な対処方法をまとめておきます。

システム情報から管理画面を開く

最近のmacOSには便利な機能がついて、ストレージタブの「管理...」をクリックするとこういう画面が出てきます。 ここでオススメされたものを消したりします。

f:id:toshi0383:20200423214842p:plain

ファイルサイズが大きいものを表示するビューもあります。

f:id:toshi0383:20200423215037p:plain

ですが、大抵これだけでは不十分なので、以下の通り泥臭い作業が必要になります。

キャッシュ発掘作業

時間はかかりますがターミナルから以下の要領で容量を食っているディレクトリを特定するのが一番近道です。

$ du -d 1 . | sort -nr  | head
99739072    .
66876560    ./Library
8222944 ./.android
7003920 ./.cocoapods
3556704 ./work
3223392 ./.gradle
2604432 ./Documents
1632552 ./.cabal
1435632 ./dev
1427656 ./Software

いうまでもないと思いますが一番左の数字がざっくりとした容量です。 -h をつけるとGB,MBなどの表示になり見やすくなりますがあんまり気にしないと思うのでそのまま行きます。 Library/ が一番重いので、掘り下げていきます。

$ cd Library/
$ du -d 1 . | sort -nr  | head
66908920    .
21692480    ./Android
20229192    ./Developer
10662456    ./Caches
10046112    ./Application Support
2207200 ./Containers
1090392 ./Ethereum
251632  ./Safari
163784  ./MediaStream
135144  ./Group Containers

大抵は Cache とか cache ディレクトリが見つかるので、要領を食っていて消して大丈夫そうなものはどんどん掃除していきます。自分の場合は使わなくなったツールのキャッシュとかよく残っていますね。

コマンドにまとめる

上記作業をするとなんとなく傾向が見えてくると思うので、aliasやコマンドにまとめておくと良いと思います。 自分の場合は以下のような感じで ~/.bashrc にまとめています。 最近はiOSAndroidを触ることが多いのでそれ関連が増えてきてました。

    function removeCaches() {
       rm -rf `brew --cache`
       rm -rf ~/Library/Developer/Xcode/DerivedData/
       rm -rf ~/Library/Developer/CoreSimulator/Caches/*
       rm -rf ~/Library/Developer/Xcode/iOS\ Device\ Logs/*
       rm -rf ~/Library/Caches/org.carthage.CarthageKit/
       rm -rf ~/Library/Caches/CocoaPods/

       rm -rf ~/.gradle/caches/*

       # Simulatorを個別にダウンロードした場合にdmgが溜まっていた
       rm -rf ~/Library/Caches/com.apple.dt.Xcode/Downloads/*
    }

以上の作業をこの記事を書きつつ大体1時間くらい続けて13GB程度は確保することができました。 Xcodeをアップデートする時に空き容量がXcode自体の倍はないと要領不足で失敗するので、これくらいがギリギリ許容範囲だと思います。

f:id:toshi0383:20200423222627p:plain

ご覧の通り2TBのHDDもマウントしているし500GBの外付けSSDも持っているので、もっと活用するべきなのかもしれません。 キャッシュディレクトリの変更機能とかあれば便利なのかもしれないですが、HDDをキャッシュディレクトリにしたら読み出し速度も遅いし、キャッシュとしては本末転倒は気はしますよね..

他の要領節約ハック

筆者は他にも以下のようなハックをしてdisk容量をケチケチ節約しています。ご参考まで!

  • 写真ライブラリはHDD側に
  • iOSシミュレータのランタイムもHDD側に

結論

会社のMacと同じように迷わず256GBのSSDにアップグレードすればよかった!と思ってますが、容量あったらあったでなぜか使い切ってしまうんですよねえ。。不思議なものです。 定期的にクリーンアップして開発中に困らないようにしたいと思います。