理想未来ってなんやねん

娘可愛い。お父さん頑張る。

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が有効になるようになります。

パフォーマンス比較

設定前、設定後のXBenchでのDisk Testベンチマークの比較です。
全体的にパフォーマンスが向上していることがわかります。

設定前


設定後


以上、ご参考になれば幸いです。