2008年12月27日

Mac OS X のマウントオプションに noatime を付加してアクセス日時の更新を停止しパフォーマンスアップ

Windowsのパフォーマンスを上げるTipsとして有名な
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem
以下のNtfsDisableLastAccessUpdate を 1 にしてやる事で
NTFSの最終ファイルアクセス日時の更新を無効にしてやり
ハードディスクへの無駄なアクセスを減らすというのに近い事をMacで試みる。

Linuxのアクセス日時の更新というのはatimeという値になっており、
マウント時のオプションとしてnoatimeを付加してやると
どうもこのatimeの更新を無効にできるらしい。

というわけで、ちょっとググってみて出てきたこのページを参考にして
/etc/rcに

mount -u -o noatime /

と追加してやる。

ところが再起動してターミナルにmountと入力してみても

/dev/disk0s10 on / (local, journaled)

と表示されるだけでnoatimeのオプションは表示されていない。
journaledの後にてっきりnoatimeと書かれるものと思っていたけど。


しかしながら、心なしか体感では動作が軽快になってる。
一応有効になっているんだろうか?


Leopardだとrcがlaunchdだかに統合されて消滅してるはずなので
rc.localでも作成してやると良い模様。
Tigerでもrc.localに書いてやる方が綺麗なのかな。
Linuxの世界はよくわからん。


アクセス日時の更新を無効にすると何故パフォーマンスが上がるのかというと、
アクセス日時を記録するためにシステムがファイルにアクセスする度に
最新の日時を書き込むわけで、これはつまりファイルを読むだけでも
書き込み作業を行ったりするわけでこれが大変無駄な作業と言えば無駄な
作業なわけでこれを無効にしてやるとハードディスクへの書き込みが減って
パフォーマンスが上がるというお話なのだけれど、
ファイルの位置を最適化するだとか云々の時にこのアクセス日時を参照してたり
するんだろうなぁと思ったり思わなかったり。

最近台頭してきたフラッシュメモリを使ってるSSDとかだと
書き込みの回数がダイレクトにハードの寿命に関わってくるので
SSD採用のネットブックを使ってる方々には必須の設定。

ハードの寿命云々に関わらずパフォーマンスの面から見ても
Windowsの場合は目に見えて効果がある。
Linuxの場合も目に見えて効果がある模様。
BSDの血を引くMacOSXでも使用可能であれば
パフォーマンスが上がるのだろうけれど、
というか実際に軽くなっているように感じるのだけれど、
なぜmountで表示されないのだろう。

HFS+だから実は効いてませんみたいなオチなのだろうか。
でも実際このオプションあるか無しかだと体感違うぞ…。
これでフラシーボなの…?

要調査です。今度調べてみませう。


追記

どうもMacOSXでnoatimeが有効になるのは
10.5 Leopard (Darwin 9.0)以降…?

http://discussions.apple.com/thread.jspa?threadID=1412109&tstart=404
Thanks for the interesting discussion - I was not even aware of the existence of the 'noatime' option.

For what it's worth, it seems to be working in 10.5.2 (at least on my system), but I note that the copy of the 'man' page for 'mount' that I have from 10.4 doesn't mention 'noatime', whereas the one from Leopard does...


Appleのフォーラムにこのような意見が…。

速くなったと感じたのは単にリブート直後だったからか。
mountでnoatime付いてないもんなぁorz


Apple MacBook 2.0GHz Core 2 Duo/13.3Apple MacBook 2.0GHz Core 2 Duo/13.3"/2G/160G/8xSuperDrive/802.11n MB466J/A

アップル 2008-10-15
売り上げランキング : 3538
おすすめ平均

Amazonで詳しく見る
by G-Tools


トラックバックURL



この記事へのコメント

1. Posted by nyamap   2008年12月27日 17:11
トラックバックもらったものです。
noatimeでマウントするとmountで出てくるデバイスのリストにnoatimeが付加されますよ。
2. Posted by fafafa   2008年12月27日 17:40
どうもこんにちは。
mountでnoatime出ますか。
どうも調べてみると10.5あるいは10.5.2以降じゃないと
有効にならないようで…。
当方10.4.11だからか有効になってないみたい。お恥ずかしい。
もともと使えないのかrc経由で有効にできないだけなのか。

後者である事を願いfstabやら色々試してみます。

この記事にコメントする

名前:
URL:
情報を記憶: