FreeBSDで運用する(その4)

その日は帰宅後にVPN越しにTelnetで設定作業を行うことにした。
ところが、時間を合わせた筈にも関わらず、随分と前の時間になっていた。
不思議に思いながらも、再び時間を設定したが、作業を開始して15分後、既に数十秒も時間が遅れていることに気が付いた。
まさかと思いながらも、次のperlスクリプトを作成して腕時計と見比べた。

#!/usr/bin/perl
use strict; #うっかり者のための定義
select(STDOUT);
$| = 1;
my $t = time;
for ( ; ; ) {
    my $t2 = time;
    if ($t2 != $t) {
        $t = $t2;
        my ($sec, $min, $hour) = localtime($t2);
        printf("\r%02d:%02d:%02d", ,$hour, $min, $sec);
    }
}

そうしたら、なんと10秒で0.5秒以上も遅れるではないか!
こんなに遅れてしまうのでは使いものにならない。
今までの苦労を無にしてなるものかとばかりgoogle検索を行った。
VMware上でFreeBSD6.0の時間が遅れる問題には、思ったよりも多くの人が悩まされていた。
ただし、ここで以下の設定をすれば、CPUに若干の負担は掛かるが、時間の遅れは無くなると書いている人がいた。

# echo "kern.timecounter.hardware=TSC" >> /etc/sysctl.conf
# /etc/rc.d/sysctl reload

残念ながら、その設定を行っても全く変わらなかったので、FreeBSD6.0をあきらめざるを得ないことを悟った。