Skip Ribbon Commands
Skip to main content

Ondrej Sevecek's Blog

:

Engineering and troubleshooting by Directory Master!
Ondrej Sevecek's Blog > Posts > Střední úprava hodin službou Windows Time Service
říjen 06
Střední úprava hodin službou Windows Time Service

Zrovna tu řeším jeden problém s hodinami a jejich špatnou "rychlostí" a synchronizací na několika fyzických serverech. Na několika serverech jedou hodiny podezřele rychle. Na některých se zpomalí, nebo zrychlí třeba o 10 sekund během 20 minut. To je peklo! Na některých jiných to má výkyvy jen čas od času, jaksi nárazově. A oni mají cluster a tam to dělá pěkná pekla.

Řeším to teď tak, že jsem zrychlil synchronizaci hodin s doménou (služba Windows Time - w32time) a čas se upravuje co nejčastěji (teďka každých 20 minut, uvidíme), aby se to moc neprojevovalo. Ale stejně to potřebuju vědět přesněji, jaké odchylky to má a jak moc to skáče na kterém serveru. Takže jsem si na to udělal skriptík v PowerShellu.

Do System logu se vám vypisují události Kernel-General s číslem 1 v každém okamžiku, když se změní hodiny. A píše to tam také z jakého času na jaký se to změnilo. Takže můj skriptík to prostě odečte a zobrazí průměr (average), maximum a minimum. Protože se neví, na jakou stranu se to pohybuje, pohyb může být záporný i kladný, tak zobrazuju tyto hodnoty jak pro surové posuny, tak i pro jejich absolutní odchylky.

Jen pozor, až to budete spouštět, nesmíte mít v logu žádné události vyvolané ruční změnou hodin - to by se samozřejmě projevilo dost výrazně na průměrech apod.

$evs = Get-WinEvent -LogName "System" -FilterXPath "
  *[System[Provider[@Name='Microsoft-Windows-Kernel-General'] and (EventID=1)]]"
$evs | % { ($_.Properties[1].Value - $_.Properties[0].Value).TotalMilliseconds } | 
  Measure-Object -Average -Maximum -Minimum
$evs | % { [Math]::Abs(($_.Properties[1].Value - $_.Properties[0].Value).TotalMilliseconds) } |
  Measure-Object -Average -Maximum -Minimum

 

Comments

There are no comments for this post.

Add Comment

Sorry comments are disable due to the constant load of spam *


Omlouvám se, ale příval spamu nelze kontrolovat, takže mi prosím pošlete email, pokud máte nějaký dotaz, nebo připomínku.

Title


Pole Title nemusíte vyplňovat, doplní se to samo na stejnou hodnotu jako je nadpis článku.

Author *


Pole Author nesmí být stejné jako pole Title! Mám to tu jako ochranu proti spamu. Roboti to nevyplní dobře :-)

Body *


Email


Emailová adresa, pokud na ni chcete ode mě dostat odpověď. Nikdo jiný než já vaši emailovou adresu neuvidí.

Attachments