Linux çekirdeği “11 dakikalık mod ”un yapabileceği en büyük donanım saati güncellemesi nedir?


18

Belirli bir zamana bağlı programlar (örneğin ntpd) bir Linux sisteminde çalışırken, çekirdek "onbir dakika moduna" ( hwclockman sayfasına bakın) geçecek ve böylece donanım saatini sistem saatinden her on dakikada bir otomatik olarak güncelleyecektir. .

SLES11'de, donanım saatini sistem saatinin 10 saat gerisinde olacak şekilde ayarlarsam, 11 dakikalık modun donanım saatini sistem saatiyle eşleştirmeyeceğini belirledim. Ancak, donanım saatini sistem saatinin 5 dakika arkasına ayarlarsam, 11 dakikalık mod mükemmel bir uyum sağlar.

Görünüşe göre 11 dakikalık modun işleyebileceği maksimum güncelleme var ve bunun ne olduğunu merak ediyorum.


Güncelleme:

Bu garip ...

Daha fazla deney, HW saatini sistem saatinin yaklaşık 20 dakika arkasındayken, 11 dakikalık modun HW saatini sistem saatinin tam olarak 30 dakika arkasında ayarlayacağını göstermektedir (!):

# 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

Güncelleme:

Ben bununla koştum: https://bugs.archlinux.org/task/27408 Bu , donanım saati süresi sistem saatinden çok uzak olduğunda çekirdeğin donanım saatini güncellemeyeceğini ima eden anlamına gelir.


Buna neyin sebep olabileceği hakkında hiçbir fikrim yok, ancak standart saat sorusunu soracağım: Donanım saatiniz UTC olarak ayarlanmış mı? (Değilse muhtemelen olmalı - bahsettiğiniz davranış için bu hesaplar sanmıyorum, ama diğer garipliğe neden olabilir ...)
voretaq7

Hindistan'da mısınız veya saatinizi Hint Standart Saati'ne mi ayarlıyorsunuz? ITS, GMT +05: 30'dur, bu nedenle 30 dakikalık bir dengeleme olabilir. Ayrıca (ancak olası olmayan), Hindistan'da kötü yapılandırılmış bir ntp sunucusu neden olabilir.
Justin Dearing

Hayır! Ben ABD / Doğu ve NTP sunucusu ofisimizde ve aynı zamanda ABD / Doğu.
QuantumMechanic

Bu bir VPS'de mi? NTP ve sanal ortamlar birlikte iyi oynamıyor.
Scrivener

Çekirdekte 11 dakikalık mod ve ne gibi sınırlamalar olabileceğine dair referans bilgileri bulamadım. Ancak ntpd, sistem saatinin ve ntp sunucu saatinin 1000 saniye içinde olduğunu kontrol eder. Değilse, sistem saatini düzeltmeye bile çalışmaz. Bunun bilerek bu kadar uzakta olabileceğini düşünüyor. Bu çekirdek modunun ntpd yerine sizi sınırladığını doğrulamanın bir yolunu düşünebilir misiniz?
JakePaulus

Yanıtlar:


5

Gönderen hwclockRHEL 4.6 adam sayfası:

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.

Böylece koşmanız sayesinde hwclock --setonu kapatmış olabilirsiniz. Aynı jetonla adjtimex --printonaylamak için çıkışını kontrol edebilirsiniz .


Bunu kapatan, sistem saatini ayarlayan bir şeydir . hwclock --setsistem saatine dokunmaz. Ve bunu yaptığımda , "64" bit gerçekten kapalı adjtimex --printolduğundan 11 dakikalık modun açık olduğunu doğrular .
QuantumMechanic

"Eğer bu sayının (ikili olarak ifade edilir)" 64 "biti 0'a eşitse, 11 dakikalık mod açıktır." - durumun garip olması durumunda 11 dakikalık modun kapalı olduğu anlamına gelir (durum 64 bit ve big-endian bit sırası olduğu varsayılırsa)?
jfs

Bu sayının "64" biti (ikili olarak ifade edilir) 0 ---> ise, bunu 7. bit anlamına gelir veya if((status & (1<<6)) == 0)11 dakikalık modun açık olduğunu görürüm .
BMiner

11 dakikalık modun uygulanması vardır: lxr.free-electrons.com/source/kernel/time/ntp.c?v=4.4#L509 sync_cmos_clock işlevi
osgx

4

Aslında bunun çekirdekteki on bir dakikalık modla hiçbir ilgisi yoktur. Bu ntpd'deki bir özellik ile ilgilidir.

Ntp'nin akıl sağlığı sınırının farkında mısınız? Zaman çok uzaksa (örneğin 10 saat) ntpd pes eder ve saati çarpıtmaz. Bu durumlarda, ntpd veya ntpdate manüel olarak çalıştırılmalıdır. Ntpd seçeneği -gbunu yapmalı. Kılavuz sayfasındaki bilgileri kontrol edin:

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


1
Bu makinede ntpdzaten -gseçenek ile çalıştırılıyor .
QuantumMechanic

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.