Cosa potrebbe far saltare l'orologio di 5 minuti?


8

Ho una scatola (fisica) con Ubuntu messo a nudo; di tanto in tanto (6 volte in 3 mesi), l'orologio salta all'indietro di esattamente 300 secondi (+ - 0,01 secondi; sempre esattamente 300 secondi). Succede da un minuto all'altro (ho una macchina esterna che lo esegue il polling una volta al minuto).

La scatola esegue 2.6.26-generico (kernel compilato personalizzato), Ubuntu 9.04 (lo so, sto cercando di aggiornarlo, ma è semi-incorporato). Non c'è nulla nei registri che indica cosa è successo e ho una vasta selezione di server pool.ntp.org ntp, che risolvono il problema dopo un po '.

Qualcuno sa cosa potrebbe causare questo?

Ulteriori 1:

Ho anche un numero di altre caselle che eseguono lo stesso kernel (binario identico) e variazioni minori dello stesso software, che non presentano questo problema. Ho anche cambiato l'hardware.

Ulteriori 2 (sintesi dei miei commenti individuali):

  • So che 9.04 non è aggiornato, sono d'accordo che dovrebbe essere aggiornato e questa decisione è fuori dal mio controllo. Perché gestione.
  • Ho provato un gran numero di server ntp e un piccolo numero. Succede ancora in entrambi i casi; se ho un gran numero di server ntp, allora si risolve più rapidamente.
  • Ho scambiato l'hardware
  • Sto usando lo stesso kernel / sistema operativo su un'altra scatola (con hardware identico), che non mostra il problema.
  • Il riavvio non ha aiutato. (questo problema è in corso da circa 6 mesi)
  • L'uptime è di circa 3 mesi. La casella è "sempre attiva", con un PBX (asterisco).
  • In questo momento, hwclock corrisponde esattamente all'orologio del software - 0,000000 secondi
  • Non sono stato in grado di trovare alcun lavoro cron che legge l'orologio hardware.
  • Non esiste alcun modello relativo al carico (sebbene il carico sia piuttosto basso).
  • Succede di giorno e di notte.
  • Non succede a intervalli regolari. Di quelli negli ultimi 3 mesi, la metà è avvenuta negli ultimi 9 giorni.
  • Non si tratta di "deriva": il 99% delle volte, è entro una frazione di secondo, quindi da un minuto all'altro salta ESATTAMENTE 300 secondi, all'indietro. Quindi, un minuto potrebbe dire che sono le 3:07:03, che corrispondono al mio altro computer entro 1 microsecondo, 60 secondi dopo, dice 3:04:03.
  • Non riesco a trovare nulla nei registri.

1
Ubuntu 9.04 è oltre la fine della vita, e se si esegue anche un kernel personalizzato, il supporto sta per essere limitato al meglio. Un sistema semi-incorporato aggiunge un altro livello di complessità.
Pantera

1
ehi, se fosse una domanda facile, lo avrei risolto ormai :)
AMADANON Inc.

Prova a ridurre il numero di server ntp per dire 3, usa quelli geograficamente vicini a te con una buona connettività.
Pantera

Buona idea, ci ho provato. L'unica differenza era che, con meno fonti ntp, ntpd faceva meno domande e impiegava più tempo a tornare alla normalità.
AMADANON Inc.

Beh, non è ntp, che lascia il tuo kernel o hardware personalizzato attraverso il processo di eliminazione.
Pantera

Risposte:


1

Questo suona come un Real Time Clock (RTC) difettoso. Se si tratta di hardware di riserva, è possibile confermare il problema eseguendo un sistema operativo diverso, ad esempio l'avvio di un CD Linux live o l'avvio PXE, e vedere se è possibile replicare l'errore. Se la stessa inclinazione si verifica su un altro sistema operativo, hai verificato che il problema è un errore hardware.

Supponendo che sia RTC, è possibile provare le seguenti soluzioni in ordine di gravità.

  • Sostituire la batteria CMOS. Puoi provare a confermare se si tratta di una batteria guasta testando la tensione della tua vecchia pastella con un multimetro.
  • Modifica RTC. Se sei fortunato e hai una scheda madre elegante, potrebbe avere due RTC. Un orologio ad alta precisione che viene utilizzato per impostazione predefinita e un RTC standard. Controllare le impostazioni BIOS / EFI e vedere se è possibile passare a RTC alternativo per evitare di utilizzare quello difettoso.
  • Prova a sostituire l'RTC. A seconda dell'età della scheda madre, il tuo RTC è probabilmente una lattina di metallo o un chip sulla scheda. Puoi provare a sostituire questo componente tu stesso se hai delle abilità elettroniche.
  • Sostituire la scheda madre, poiché l'RTC o alcuni dei componenti elettrici o dei cavi che si interfacciano con l'RTC non funzionano.

1

È possibile eseguire uno script sulla scatola che tiene traccia dei processi in esecuzione e allo stesso tempo controlla l'orologio. Se l'orologio torna indietro all'improvviso, registra l'elenco dei processi attivi in ​​quel momento. Forse questo dà un indizio su quale processo cambia l'orologio.

Naturalmente, questo presuppone che tu abbia un problema software. Non troverai nulla in questo modo se solo l'hardware non funziona.

/bin/bash

oldTime=$(date +%s)
oldPsOutput=$(ps faux)
while sleep 1
do
  currentTime=$(date +%s)
  currentPsOutput=$(ps faux)
  if [ "$currentTime" -lt "$oldTime" ]  # clock change detected?
  then
    echo '========='
    echo "$currentTime < $oldTime"
    echo "$oldPsOutput"
    echo ':::::::::'
    echo "$currentPsOutput"
  fi >> /tmp/clockChangeDetector.log
  oldPsOutput=$currentPsOutput
  oldTime=$currentTime
done

0

La risposta di Michael Yasumoto sembra coprire tutte le basi - concordo sul fatto che probabilmente stai guardando hardware complicato - ma ecco un'idea pratica: usare una macchina affidabile con una connettività interna molto buona che abbia una manciata di cicli per risparmiare per eseguire un Server NTP, quindi fare " tutto il necessario " per fare in modo che il client NTP in esecuzione sul box PBX incorporato spam questo server NTP locale per richieste di orario il più spesso possibile (ad esempio, ogni 30 secondi).

Quindi, quando la scatola viene finalmente aggiornata, mettila da parte e scopri cosa c'era che non andava ad Some Point (TM). : P

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.