Macでファイルシステムをnoatimeでマウントして高速化&SSDの寿命を延ばすようにする
OSのファイルシステムにはatimeという仕組みがあり、ファイルを読んだ際の時刻を記録する仕組みがあります。
このatimeですが厄介なことにファイルを読み込むだけで更新されるため、書き換えが待たされている間パフォーマンスが低下します。
また時刻が書き換えが発生するため、SSDのように書き換え回数に制限のあるメディアの場合はファイルを読んだだけで寿命が縮んでいくことになります。
Macの場合、ファイルシステムをマウントする際にnoatimeを指定することでatimeの更新を無効にすることができます。
設定方法
noatimeを指定してファイルシステムをマウントするには、コマンドラインで、
$ sudo mount -vuwo noatime /
として入力して再マウントします。
毎回マウントするのは面倒ですので、launchdを使って起動時に実行できるようにしておくと便利です。
設定は/Library/LaunchDaemons/com.my.noatime.plistというファイルを作成して下記を入力します。
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>com.my.noatime</string> <key>ProgramArguments</key> <array> <string>mount</string> <string>-vuwo</string> <string>noatime</string> <string>/</string> </array> <key>RunAtLoad</key> <true/> </dict> </plist>
書込み後、ファイルのオーナーを変更します。
$ sudo chown root:wheel /Library/LaunchDaemons/com.my.noatime.plist
これで再起動後もnoatimeが有効になるようになります。