Qu'est-ce qui pourrait faire sauter l'horloge de 5 minutes?

8

J'ai une boîte (physique) exécutant un Ubuntu dépouillé; de temps en temps (6 fois en 3 mois), l'horloge saute en arrière de 300 secondes exactement (+ - 0,01 seconde; toujours exactement 300 secondes). Cela se produit d'une minute à l'autre (j'ai une machine externe qui l'interroge une fois par minute).

La boîte exécute 2.6.26-générique (noyau compilé personnalisé), Ubuntu 9.04 (je sais, j'essaie de le mettre à jour, mais il est semi-intégré). Il n'y a rien dans les journaux qui indique ce qui s'est passé, et j'ai une grande sélection de serveurs ntp pool.ntp.org, qui corrigent le problème après un certain temps.

Quelqu'un sait-il ce qui pourrait provoquer cela?

1 supplémentaire:

J'ai également un certain nombre d'autres boîtes exécutant le même noyau (binaire identique), et des variantes mineures du même logiciel, qui n'ont pas ce problème. J'ai également échangé le matériel.

2 supplémentaires (résumé de mes commentaires individuels):

  • Je sais que 9.04 est obsolète, je suis d'accord qu'il devrait être mis à jour et cette décision est hors de mon contrôle. Parce que la gestion.
  • J'ai essayé un grand nombre de serveurs ntp et un petit nombre. Cela se produit toujours dans les deux cas; si j'ai un grand nombre de serveurs ntp, il se corrige plus rapidement.
  • J'ai échangé le matériel
  • J'utilise le même noyau / système d'exploitation sur une autre box (avec un matériel identique), ce qui ne montre pas le problème.
  • Le redémarrage n'a pas aidé. (ce problème persiste depuis environ 6 mois)
  • La disponibilité est d'environ 3 mois. La boîte est "toujours allumée", exécutant un PBX (astérisque).
  • À l'heure actuelle, le hwclock correspond exactement à l'horloge du logiciel - 0,000000 secondes
  • Je n'ai pas pu trouver de tâches cron qui lisent l'horloge matérielle.
  • Il n'y a pas de modèle lié à la charge (bien que la charge soit de toute façon assez faible).
  • Cela arrive le jour et la nuit.
  • Cela ne se produit pas à intervalles réguliers. Parmi ceux des 3 derniers mois, la moitié s'est produite au cours des 9 derniers jours.
  • Ce n'est pas de la "dérive" - ​​99% du temps, c'est en une infime fraction de seconde, puis d'une minute à l'autre, ça saute EXACTEMENT 300 secondes, en arrière. Donc, une minute, il pourrait dire qu'il est 3:07:03, correspondant à mon autre ordinateur à 1 microseconde près, 60 secondes plus tard, il est dit 3:04:03.
  • Je ne trouve rien dans les journaux.
AMADANON Inc.
la source
1
Ubuntu 9.04 est au-delà de la fin de vie, et si vous exécutez un noyau personnalisé en plus, le support est au mieux limité. Un système semi-intégré ajoute une autre couche de complexité.
Panther
1
hé, si c'était une question facile, je l'aurais résolu maintenant :)
AMADANON Inc.
Essayez de réduire votre nombre de serveurs ntp à 3, utilisez-les géographiquement proches de vous avec une bonne connectivité.
Panther
Bonne idée - j'ai essayé ça. La seule différence était que, avec moins de sources ntp, ntpd effectuait moins de requêtes et qu'il fallait plus de temps pour revenir à la normale.
AMADANON Inc. du
Et bien ce n'est pas ntp, qui laisse votre noyau ou matériel personnalisé par processus d'élimination.
Panther

Réponses:

1

Cela ressemble à une horloge en temps réel défaillante (RTC). S'il s'agit de matériel de rechange, vous pouvez confirmer le problème en exécutant un autre système d'exploitation, tel que le démarrage d'un CD Linux direct ou le démarrage PXE, et voir si vous pouvez répliquer l'échec. Si le décalage horaire exactement identique se produit sur un autre système d'exploitation, vous avez confirmé que le problème est une défaillance matérielle.

En supposant qu'il s'agit du RTC, vous pouvez essayer les solutions suivantes par ordre de gravité.

  • Remplacez la pile CMOS. Vous pouvez essayer de confirmer s'il s'agit d'une batterie défectueuse en testant la tension de votre ancienne batterie avec un multimètre.
  • Modifiez les RTC. Si vous avez de la chance et que vous avez une carte mère sophistiquée, elle peut avoir deux RTC. Une horloge de haute précision utilisée par défaut et un RTC standard. Vérifiez les paramètres BIOS / EFI et voyez si vous pouvez passer à l'autre RTC pour éviter d'utiliser celui qui est défectueux.
  • Essayez de remplacer le RTC. Selon l'âge de votre carte mère, votre RTC est probablement une boîte métallique ou une puce sur la carte. Vous pouvez essayer de remplacer vous-même ce composant si vous avez des compétences en électronique.
  • Remplacez la carte mère, car le RTC ou certains des composants électriques ou des fils qui interfèrent avec le RTC échouent.
Michael Yasumoto
la source
1

Vous pouvez exécuter un script sur la boîte qui garde une trace des processus en cours et surveille en même temps l'horloge. Si l'horloge revient brusquement en arrière, elle enregistre la liste des processus actifs à ce moment. Peut-être que cela donne un indice sur le processus qui change l'horloge.

Bien sûr, cela suppose que vous avez un problème logiciel. Vous ne trouverez rien de cette façon si votre matériel tombe en panne.

/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
Alfe
la source
0

La réponse de Michael Yasumoto semble couvrir toutes les bases - je suis d'accord que vous regardez probablement du matériel bancal - mais voici une idée pratique: utilisez une machine fiable avec une très bonne connectivité interne qui a une poignée de cycles à épargner pour exécuter un Serveur NTP, puis faites " tout ce qu'il faut " pour que le client NTP s'exécutant sur la boîte PBX intégrée spams ce serveur NTP local pour les demandes de temps aussi souvent que possible (par exemple, toutes les 30 secondes).

Ensuite, lorsque la boîte est enfin mise à niveau, mettez-la dûment de côté et déterminez ce qui n'allait pas avec At Some Point (TM). : P

i336_
la source