Soru İki Windows ana bilgisayarın zaman varyansını yargılamak için w32tm / stripchart kullanmak uygun mu? İki konağın zaman varyansını keşfetmenin daha iyi bir yolu?


Kullanılabilir mi w32tm.exeseçeneği stripchart iki ana bilgisayarın zaman sapmasını yargılamak (çok küçük bir hata payı dahilinde)? Bunu not et w32tm.exe'ler stripchart işlev, tarafından kullanılan algoritmadan ayrıdır Windows Time hizmet kendisi.

Değilse, bazı alternatif yöntemler nelerdir?

Teşekkürler,

Mat


5
2018-03-18 18:44


Menşei




Cevaplar:


İlk sorunuzun cevabı "Evet, w32tm.exe (Windows Saati) iki ağ ana bilgisayarın zaman farkını çok küçük bir hata payı (göreli terim) içinde ölçebilir."

İkinci sorunuzun cevabı "Evet, iki ana bilgisayar arasındaki zaman varyansını ölçmenin daha iyi yolları var. Microsoft çok doğru diyor İşte. Seni işaret ediyorlar NISTW32tm.exe'den daha iyi olan bir sürü yazılım parçasını (ve donanımı) listeler. Microsoft'un net olarak w32tm.exe'yi ultra yüksek hassasiyetli bir araç olarak desteklemediğinden eminim. ”

Windows Saati (ve w32tm.exe), ağ gecikmesini telafi eden RFC 1305 (NTPv3) uyumludur. Kaynak ve Kaynak. Ağ gecikmesini telafi etmek ağ zaman protokolünün en temel özelliklerinden biridir. (NTPv3'ün kullandığı Marzullo'nun algoritmasına bakın.)

Sorunuz hakkında beni ne rahatsız ediyorsa, yüksek hassasiyetin sizin için çok önemli olduğu, ancak ihtiyacınız olan kesin hassasiyet hakkında herhangi bir ipucu vermediniz. 1 saniye? 1 milisaniye mi? 1 nanosaniye mi? Genel amaçlı bilgisayarlarda, genellikle 32.768 KHz (iki güç) hızında çalışan bir kristal osilatör tarafından kontrol edilen, ancak sıcaklık, voltaj vb. Duyarlı olan işlemci tarafından alınan saat kesintilerinin sıklığına bağlı bir saat çözünürlüğü bulunur. Tipik bir Windows makinesindeki HAL, gerçek zamanlı saatin her 15.6 milisaniye veya saniyede yaklaşık 64 kez ateşlenmesini yapılandırmaya yarar. Bununla birlikte, RTC'yi hala 1 ms'ye indirebilir ve ayrıca 15,6 milisaniye zaman dilimini yazılım yoluyla daha yüksek performanslı uygulamalar için daha küçük dilimlere ayırabilirsiniz. Ne olursa olsun, NTP zaman damgasının kendisi 64 bit işaretsiz bir sabit nokta numarasıdır ve bu yüzden yaklaşık 232 pikosaniyelik bir hassasiyet teorik sınırına sahiptir, ancak Windows Saati uygulaması buna bile yaklaşmaz. Windows Zaman -6 bir NTP duyarlığı -6 görüntüler ve en son ve en büyük NTP algoritmalarını desteklemez, bu nedenle, gerçekte bir donanım saatinin veya artı ya da eksi 16 milisaniyeden daha hassas bir şekilde asla güvenilir bir şekilde üretilememesi olasıdır.

Genel amaçlı işletim sistemleri, özellikle zaman tutma algoritmaları, yürütme iş parçacıklarının sürekli olarak önceliğe alındığı kullanıcı modunda uygulandığında, olağanüstü harika saatler değildir. Son derece hassas saatler pahalıdır.

clockres

Yukarıdaki resim, sistemdeki saat kesintilerinin sıklığıdır. Saat kesintilerinin bile (32-bit Windows'ta IRQL 28 ve 64-bit Windows'da IRQL 13), işlemciler arası kesmeler gibi daha yüksek kesmeler tarafından önlenebileceğini ve doğru zaman hesaplarının ertelenebileceğini, nanosaniye.

Yani NTP'ye geri dönün.

w32tm /stripchart /computer:10.0.1.8 Bir Windows makinesi ile diğeri arasındaki zaman deltasını test etmek için mükemmel bir yöntemdir. Yukarıda bahsedildiği gibi NTPv3 uyumlu olmasının ima ettiği ağ gecikmesini açıklar. Ama bunun için sözümü tutmayın. Wireshark izinde kendiniz için işlemi görebilirsiniz (w32tm.exe tarafından bir Windows NTP sunucusuna gönderilen istemci paketi):

Wireshark NTP

Microsoft değil garanti Windows Süresini kullanarak ikinci saniye doğrulukları, çünkü bunların herhangi bir ürününün çalışması için bunu desteklemelerine gerek yoktur. Bununla birlikte, bu w32tm.exe hala alt-saniye doğruluğu yeteneğine sahip olmadığı anlamına gelmez.

Eğer sen gerçekten Bundan daha doğru zamana ihtiyacınız varsa, NTP'nin biraz farklı algoritmalar kullanan başka bir uygulamasıyla ekstra bir milisaniye veya 10'luk bir hassasiyete sahip olabilirsiniz. Fakat eğer gerçekten daha doğru zamana ihtiyacınız varsa, kişisel olarak NTP'yi hiç önermem. Bir sezyum saatini doğrudan makinenize bağlayın ve önleyici bir işletim sistemi kullanmayın.

5/2/2017 düzenle: Yukarıdaki bilgiler güncel değil ve Windows Server 2016 ve ötesi için geçerli değildir. Microsoft, daha sonraki işletim sistemlerinde Windows Time'ın doğruluğu konusunda bazı ciddi iyileştirmeler yapmıştır.


5
2018-03-18 20:17



Sağol Ryan. Yazılı makaleyi gönderdiğiniz için teşekkür ederim. Windows Time hizmetin doğru değil w32tm.exe  stripchart kendini işlev Kaçmanın ne kadar uygun olduğunu anlamaya çalışıyorum. stripchart Bir yerinde NTP sunucusunu hedefleyen iki ayrı bilgisayarda. Çünkü zaman damgalarını çıkaran bir uygulama kullanıyorum. now() (yerel makine süresi), ve her iki makinede çıkışa ait günlük girişlerini sapma için karşılaştırmam gerekiyor. Olabilir ntp drift ölçmek için başka bir benzer aracı vardır. - mbrownnyc
Yapar mı stripchart eğer işlev w32tm.exe paket gecikmesini gerektiği gibi ele almalı mı? - mbrownnyc
Nerede olduğunu açık bir ifadeyle görüyorsunuz w32tm.exe aracın işlevi stripchart gecikme hesaplar? Görüyorum ki Windows Time hizmet: "[bilgi geçiyor] ağ gecikme ve bilgisayar saati yanlışlık nedeniyle hataları telafi ederken, bilgisayarın yerel saatini düzeltmek için toplanan bilgileri kullanan saat disiplin algoritması." Ben koştum stripchart ve rohitab'ın API İzleyicisi ile API çağrılarını izledi ve herhangi bir gecikme ölçümü gerçekleşiyor gibi görünmüyor; ama bilmiyorum. - mbrownnyc
Görüşlerimde uzun tartışmalardan kaçınmak için sorumu düzenliyorum. - Ryan Ries
Sağol Ryan! Sorularıma RFC'yi ve paketler içindeki zaman verisini çaprazlayarak yanıtladım (ki bu, w32tm.exe'nin şerit şemasının çıktısını ve çıktılarını görüp görmediğimi görmek için kullanacağım) [Testi bitirdiğimde geri göndereceğim bu sonuçlar]. Zaman aşımına adanmamış cipslerin kapalı setlerin teknik özellikleri ve zayıf zaman tutma özellikleri hakkında ek bilgi eklediğiniz için teşekkür ederiz. Burada atom çarpışmalarını ölçemiyorum, bu yüzden çoğunlukla milisaniye sürüklenme ile ilgileniyoruz (muhtemelen daha sonra mikro saniye sonra). Basitçe, yerel CPU kullanımı bizim için en fazla sapmaya neden olur. - mbrownnyc


Ben bulamıyorum w32tm.exe'ler stripchart gecikme ve titreme için hesaplar (veya nasıl hesapları). Bunun yerine ben buldum ntp posta listesinde bir iş parçacığı o kullanıcıyı yönlendirdi gecikmeyi ve titreşimi ölçen üç ek çözüme:


0