最近のFreeBSDをVMwareで動かすと時計が狂う

最近、検証などでVMwareを使ってますが、ゲストOSにFreeBSD6以降を入れると時間が狂うと言う良くわからない現象に悩まされていたのですが・・・

やっと原因がわかったのでメモ代わりに記事にしておきます。
(googleなんかで検索すればすぐに見つかる内容なんだけどね)

FreeBSD5.xまではカーネルのクロックレートが100Hzだが、FreeBSD6以降は1000Hzに変更されたのが原因らしいです。
1000HzだとVMware内での割込み処理が追いつかなくなり時刻が狂ってしまうらしいです。
同様な理由で、最近のLinuxでもずれるらしいです。

対策としては、 /boot/loader.conf に kern.hz=100 を記述して再起動。
この設定によりカーネルクロックが100Hzで動作しますので、割り込みが間に合わずに時刻がずれることはなくなるようです。