Debian: heure déréglé

Bonjour a tous!
Je vient vous voir juste au cas ou vous auriez une explication ou un peu d’information a ce sujet. J’ai un serveur chez ovh qui perdait énormément de secondes avec le temps. A raison de 200 secondes en deux mois. Depuis je synchronise régulièrement a l’aide de crontab:

Mais ça m’intrigue quand même ^^ Comment ça ce fait que l’heure se dérègle autant ?

200s en deux mois et tu trouves ça excessif??? J’ai connu des machines dérivant de 5-10 minutes en quelques jours… Utilise un démon ntp, ça synchronisera doucement.

Ah ce point là ? C’est au dessus de ce que j’imaginais ^^
Pourtant tout petit j’avais des montres qui se déréglait pas trop a mon poignet :mrgreen: . D’ou vienne ces décalages d’après vous ? Logiciel, électronique ?

Il ne faut pas confondre l’horloge matérielle de ton ordinateur (lue au boute et plus utilisée par la suite du moins je crois) et l’horloge interne incrémentée de façon logicielle qui dépend plus de la cadence de ton CPU beaucoup moins précise. Que l’horloge interne d’un serveur dérive c’est normal, il y a de grandes chances que si tu recharges l’horloge matérielle (hwclock -r) de ta machine, l’heure redevienne correcte:

# date ; hwclock -r jeudi 24 février 2011, 16:53:17 (UTC+0100) jeu 24 fév 2011 16:53:18 CET -0.985000 seconds

Merci beaucoup! On en apprend tout les jours =)
Ceci explique cela … =)

Oui mais non. L’horloge système est basée sur un temporisateur (timer) matériel, lui-même basé sur une horloge à quartz. Or la précision de ce quartz et de l’horloge n’est pas infinie. Typiquement, elle est de l’ordre de 50 ppm (parties par million), soit 50*10e-6. Sur deux mois, on peut donc s’attendre à une dérive de :

2 mois * 30 jours * 24 heures * 60 minutes * 60 secondes * 50 * 10e-6 = 260 secondes

Cette valeur est bien du même ordre de grandeur que les 200 secondes que tu observes.
D’après mon expérience, il semblerait que les quartz de montre, qui sont aussi utilisés pour l’horloge dite “matérielle” (ou RTC pour real-time clock, à ne pas confondre avec l’horloge système) des PC, soient plus précis.

Je n’aurai pas pu demandé plus précis comme raisonnement.
:wink:

Par curiosité je viens de faire le test sur un de mes serveurs et je suis assez “surpris”:

-0.007728 seconds :open_mouth: :118 :open_mouth: … pour un “uptime” de 75 jours… (et ce n’est pas un serveur suisse… :005 )

:006

Je prend un autre de mes serveurs au hasard pour faire un nouveau test aussi tient:
uptime: 67 jours

hwclock -r jeu 24 fév 2011 17:54:49 CET -0.420648 seconds
Puis:

/usr/sbin/ntpdate fr.pool.ntp.org 24 Feb 17:59:31 ntpdate[5228]: step time server 91.121.60.231 offset -40.646848 sec

Comme quoi ^^

[quote=“PascalHambourg”]Oui mais non. L’horloge système est basée sur un temporisateur (timer) matériel, lui-même basé sur une horloge à quartz. Or la précision de ce quartz et de l’horloge n’est pas infinie. Typiquement, elle est de l’ordre de 50 ppm (parties par million), soit 50*10e-6. Sur deux mois, on peut donc s’attendre à une dérive de :

2 mois * 30 jours * 24 heures * 60 minutes * 60 secondes * 50 * 10e-6 = 260 secondes

Cette valeur est bien du même ordre de grandeur que les 200 secondes que tu observes.
D’après mon expérience, il semblerait que les quartz de montre, qui sont aussi utilisés pour l’horloge dite “matérielle” (ou RTC pour real-time clock, à ne pas confondre avec l’horloge système) des PC, soient plus précis.[/quote]

Je pensais que cette horloge système était obtenue par la même horloge que celle cadençant le CPU (après division de la fréquence) -ce qui n’est finalement pas incompatible avec ce que tu dis- mais surtout que la précision de ces horloges était beaucoup moins grande que tes 50ppm (je voyais de l’ordre de 1/1000 soit 20 fois plus et des dérives se comptant parfois en dizaine de minutes sur un mois).

Traditionnellement l’horloge système est dérivée du circuit Programmable Interval Timer 8254, source de l’IRQ 0, dont la fonction est désormais intégrée au chipset. D’après Wikipédia, son remplaçant à haute résolution (HPET) fait aussi partie du chipset. Le compteur TSC intégré au Pentium Classic et ultérieurs est bien dans le processeur, mais sa fréquence varie avec celle du processeur (son but est de compter les cycles CPU), donc ne convient pas forcément à la mesure du temps.