VMware上のCentOSの時刻ずれ対策

http://webos-goodies.jp/archives/50179807.html

* Linux OS では、タイマー割り込みをカウントすることで時刻を管理している。
* 2.4 カーネルまではタイマー割り込みの間隔は 100 Hz だったが、2.6 カーネルから 1000 Hz にアップしている。
* さらに、SMP カーネルでは 1 秒に 1000×(CPU数+1)回のタイマー割り込みが発生する。
* エミュレーションされた仮想マシンでは、こんな頻度の割り込みは処理できない。そのため、時刻が大幅に遅れる。
* 実際のハードウェアでもタイマー割り込みの取りこぼしは発生するが、Linux 2.6 にはこれを補正するコードが含まれている。残念なことにこのコードはいくつかの場面において、まやかしの補正を引き起こす。このため、時刻が実際よりも進んでしまうことがある。この現象は仮想マシン上でより多く発生する。
というわけで、APM を有効にしていたときはタイマー割り込みの取りこぼしが頻繁に発生して時刻が大幅に遅れていたわけです。APM を無効にした後は、最後の「不正な補正」が時々発生して、徐々に時刻が進んでしまった、ということですね。

現在の環境はCore2Duoで2CPU環境。
が、VMwareの仮想マシン上は1CPUとして設定。
なので対策としては以下を設定。
■割り込みの発生するデーモンの停止

# service apmd stop
# service acpid stop
# service cpuspeed stop
# chkconfig apmd off
# chkconfig acpid off
# chkconifg cpuspeed off

■カーネル起動オプションの追加

# vi /boot/grub/grub.conf
kernel /vmlinuz-2.6.18-92.1.18.el5 ro root=/dev/VolGroup00/LogVol00 rhgb quiet
↓
kernel /vmlinuz-2.6.18-92.1.18.el5 ro root=/dev/VolGroup00/LogVol00 rhgb quiet clock=pit nosmp noapic nolapic
に変更。

そして、OSをリブートする。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です