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

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 *


Type number two as digit *


Semhle vyplňte číslici dvě. Předchozí antispemové pole nefunguje úplně dokonale, zdá se, že jsou i spamery, které pochopily, že je občas potřeba vyplnit autora :-)

Email


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

Attachments