Qual é a maior atualização de relógio de hardware que o “modo de 11 minutos” do kernel do Linux pode fazer?

18

Quando certos programas relacionados ao tempo (como ntpd ) estão sendo executados em um sistema Linux, o kernel passará para o chamado "modo de onze minutos" (veja a página hwclock man) pelo qual ele atualizará automaticamente o relógio de hardware do relógio do sistema a cada onze minutos.

No SLES11, determinei empiricamente que, se eu definir o relógio do hardware como algo como 10 horas atrás do relógio do sistema, o modo de 11 minutos parece incapaz de fazer com que o relógio do hardware corresponda ao relógio do sistema. Mas se eu definir o relógio do hardware 5 minutos atrás do relógio do sistema, o modo de 11 minutos faz uma combinação perfeita.

Então, aparentemente, há alguma atualização máxima que o modo de 11 minutos aguenta e estou imaginando o que é isso.

Atualização:

Isso é estranho ...

Mais experimentos mostram que quando eu tenho o relógio HW por volta de 20 minutos atrás do relógio do sistema, o modo de 11 minutos ajusta o relógio HW para exatamente 30 minutos atrás do clock do sistema (!):

# 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

Atualização:

Eu passei por isso: link que implica que, para bem ou para mal, o kernel não atualiza o relógio do hardware quando o tempo do relógio do hardware está muito longe do tempo do relógio do sistema.

    
por QuantumMechanic 05.12.2011 / 23:33

3 respostas

5

Na página hwclock man no RHEL 4.6:

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.

Então, pela virtude de você estar executando hwclock --set , você provavelmente desativou. Da mesma forma, você pode verificar a saída do adjtimex --print para confirmar.

    
por 18.01.2012 / 18:06
4

Na verdade, isso não tem nada a ver com o modo de onze minutos no kernel. Isso está relacionado a um recurso no ntpd.

Você está ciente do chamado limite de sanidade de ntp? Se o tempo estiver muito longe (por exemplo, 10 horas), o ntpd desiste e não distorce o relógio. Nesses casos, ntpd ou ntpdate devem ser executados manualmente. A opção Ntpd de -g deve fazer isso. Verifique as informações da página man:

link

    
por 18.01.2012 / 18:35
0

O kernel não sincronizará o tempo se estiver desativado por mais de 60 minutos quando estiver no modo Onze Minutos. Este é um problema comum no SUSE Enterprise. Consulte este artigo do Open SUSE para obter mais detalhes: link

    
por 14.09.2017 / 14:44