Linuxカーネルの「11分間モード」で可能な最大のハードウェアクロックアップデートは何ですか?


18

ntpdLinuxシステムで特定の時間関連プログラム(など)が実行されている場合、カーネルはいわゆる「11分モード」(hwclockマニュアルページを参照)に切り替わり、11分ごとにシステムクロックからハードウェアクロックを自動的に更新します。 。

SLES11では、ハードウェアクロックをシステムクロックの10時間遅れに設定すると、11分間モードではハードウェアクロックをシステムクロックに一致させることができないと経験的に判断しました。しかし、システムクロックより5分遅れてハードウェアクロックを設定すると、11分モードが完全に一致します。

明らかに、11分間モードで処理できる最大の更新があるため、それが何であるかと思います。


更新:

これは奇妙です...

さらに実験を行うと、システムクロックの20分前後にHWクロックがある場合、11分間モードではHWクロックがシステムクロックのちょうど 30分遅れに設定されます(!):

# date
Tue Dec  6 10:16:52 EST 2011
# hwclock --set --date "12/6/11 09:56"
#
# date
Tue Dec  6 10:17:16 EST 2011
# hwclock --show
Tue Dec  6 09:56:06 2011  -0.156551 seconds
#
# date
Tue Dec  6 10:23:09 EST 2011
# hwclock --show
Tue Dec  6 10:01:58 2011  -0.535772 seconds
#
# date
Tue Dec  6 10:34:28 EST 2011
# hwclock --show
Tue Dec  6 10:04:27 2011  -0.192025 seconds

更新:

私はこれに出くわしました:https : //bugs.archlinux.org/task/27408は、ハードウェアクロック時間がシステムクロック時間から離れすぎている場合、善悪にかかわらずカーネルがハードウェアクロックを更新しないことを意味します。


何がこれを引き起こしているのかわかりませんが、標準的なクロックの質問をします:ハードウェアクロックはUTCに設定されていますか?(そうでない場合は、おそらくそうである必要があります-これはあなたが言及した行動を説明するとは思いませんが、他の奇妙さを引き起こす可能性があります...)
voretaq7

あなたはインドにいますか、それとも時計をインド標準時に合わせていますか?ITSはGMT +05:30であるため、30分のオフセットを占める可能性があります。また、インドでは不適切に構成されたntpサーバーが原因である可能性があります。
ジャスティンディアリング

いや。私は米国/東部にいて、NTPサーバーはオフィスにあり、米国/東部にもあります。
QuantumMechanic

これはVPS上ですか?NTP環境と仮想環境はうまく連携しません。
書士

カーネルの11分間モードに関する参照情報と、それが持つ制限を見つけることができませんでした。ただし、ntpdは、システム時間とntpサーバー時間が1000秒以内であることを確認します。そうでない場合は、システム時刻の修正も試みません。それは意図的に遠く離れているかもしれないと考えています。このカーネルモードがntpdではなくあなたを制限していることを確認する方法はありますか?
-JakePaulus

回答:


5

hwclockRHEL 4.6のmanページから:

This mode (we'll call it "11 minute mode") is off until something turns it on.  The ntp
daemon  xntpd  is  one thing  that  turns  it on.  You can turn it off by running
anything, including hwclock --hctosys, that sets the System Time the old fashioned way.

To see if it is on or off, use the command adjtimex --print and look at the value of
"status".  If the "64" bit of this number (expressed in binary) equal to 0, 11 minute mode 
is on.  Otherwise, it is off.

したがって、あなたが走っhwclock --setているおかげで、あなたはおそらくそれをオフにしているでしょう。同じトークンを使用して、出力adjtimex --printを確認して確認できます。


オフにするのは、システム時間を設定するものです。 hwclock --setシステム時刻には影響しません。そして、「64」ビットが実際にオフadjtimex --printになっているため、11分モードがオンになっていることを確認します。
QuantumMechanic

「この数値の「64」ビット(バイナリで表される)が0に等しい場合、11分間モードがオンになります。」-ステータスが奇数の場合、11分間モードがオフになっていることを意味しますか(ステータスが64ビットおよびビッグエンディアンのビット順序であると仮定)?
jfs

この数の「64」ビット(バイナリで表現)が0に等しい場合--->これは7番目のビットを意味するものと見なされif((status & (1<<6)) == 0)、11分モードがオンになります。
BMiner

11分モードの実装があります:lxr.free-electrons.com/source/kernel/time/ntp.c?v sync_cmos_clock
4.4#

4

実際、これはカーネルの11分モードとは関係ありません。これは、ntpdの機能に関連しています。

ntpのいわゆる正気の制限を知っていますか?時間があまりにも離れている場合(たとえば10時間)、ntpdはあきらめてクロックをゆがめません。これらの場合、ntpdまたはntpdateは手動で実行する必要があります。Ntpdオプションのそれ-gを行う必要があります。manページから情報を確認してください。

http://doc.ntp.org/4.1.0/ntpd.htm


1
このマシンでntpdは、-gオプションですでに実行されています。
QuantumMechanic

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.