Macを使っていてどうも気になることが。長時間立ち上げっぱなしにしておくとだんだん遅くなる。数日も放っておいたら、結構ひどいことになりリブートしないと速度が戻りません。
これはどうやらスワップが原因なようで、大きなスワップファイルがいくつも出来ています。メモリは2GBとか4GBあるので、さほどスワップなどいらないはずなんですが。少し調べてみると以下のような記事を発見。
- 404 Blog Not Found:Mac OS X Leopard - dynamic_pager を骨抜きに
- Killing Mac OS X Swapping : How To Disable dynamic_pager - cestdelamerde.com
ということでMakefileをもらってきてインストール&再起動。ブラウザとかを使った後でしばらく放置してみたところではスワップファイルは見事64MBに納まっています。やればできるんじゃんLeopard!
同じようにアクティビティモニタで気づいたのは書き込みが意外に多いということ。丁度今動いてるマシンを見てみるとワークロードによりますがリードライトの比率が1:1とかになっている。思いの外書き込みが多い感じ。
で、ちょっと調べてみるとmacosのmountにはasyncとnoatimeとかいうおいしそうなオプションがあります。
試して見ると残念ながらasyncはhfsでは未サポート、noatimeは無事動作。で、起動時にこのオプションを指定しようと思ったのですが、不慣れなmac osx。fstabに書いてもダメだし、rcはないし、よくわからないのでてっとり早く/etc/rc.localに書くことに。
/etc/rc.localを作成し
#!/bin/sh
mount -u -o noatime /
等と書き込んで再起動。
少しでも不要な書き込みが減るので特にSSDを使ってる場合に効果があるかもしれません。OSXを入れた某EeePC上で試して見ると明らかに動作が軽くなりました。またAirのようなHDDが遅いモデルでも有効と思われます。それにしてもLinuxのようにもうちょっとカーネルやファイルシステムのパラメータがいじれたらチューニングも出来そうなのですが。(いや不勉強なだけか...)