Плавная корректировка времени

miksoft
Дата: 21.12.2007 17:50:04
Добрый день!

Есть сервер Windows 2003. На нем системные часы идут чуть-чуть быстрее, чем должны. Вопрос, как правильно синхронизировать на нем системное время так, чтобы оно изменялось не скачком назад при каждой синхронизации, а просто немного замедляло ход, с тем чтобы через некоторое время уже идти "нога в ногу" ?
В линуксе оно делается, а вот как в Windows?

Про закаладку "Время интернета" в свойствах даты/времени знаю. Но нигде не нашел информации, будет ли при такой синхронизации системное время прыгать назад или замедляться.

Спасибо за любую подсказку!
MZH
Дата: 21.12.2007 17:56:43
По-моему, динамическая корректировка смещения времени-задача интересная, но малосмысленная. Или нужно подводить систему к правильному времени долго и осторожно?

Почему бы не выставить время правильно один раз и в последующем через w32tm.exe не настроить актуализацию времени хоть каждые 5 минут?
miksoft
Дата: 21.12.2007 18:03:28
MZH
По-моему, динамическая корректировка смещения времени-задача интересная, но малосмысленная. Или нужно подводить систему к правильному времени долго и осторожно?
Долго и острожно не нужно. Можно хоть вдвое замедлять ход часов на время синхронизации.
Самое главное - чтобы не было прыжков назад, т.е. чтобы системные часы никогда на давали показаний меньше тех, которых они уже давали (простите за выражение).

MZH
Почему бы не выставить время правильно один раз и в последующем через w32tm.exe не настроить актуализацию времени хоть каждые 5 минут?
Оно вполне можно, если бы я был уверен в отсутсвии прыжков назад.
MZH
Дата: 21.12.2007 18:08:17
Если нужная гарантированная уникальность показаний, то, может, стоит разобраться с причинами разгона системного таймера? BIOS перепрошить, материнскую плату заменить...

Думаю, можно сочинить что-нибудь на VBScript, что будет дёргать показания с сервера NTP, сравнивать их с локальными и в случае расхождений больше приемлемой дельты выставлять, например, среднее арифметическое между локальным и эталонным, или просто откручивать часы на заданное значение.
miksoft
Дата: 21.12.2007 18:15:09
MZH
Думаю, можно сочинить что-нибудь на VBScript, что будет дёргать показания с сервера NTP, сравнивать их с локальными и в случае расхождений больше приемлемой дельты выставлять, например, среднее арифметическое между локальным и эталонным, или просто откручивать часы на заданное значение.
Сомневаюсь, что движение назад микроскопическими шажками мне поможет.
man ntpdate
If the error is less than 0.5 seconds, by default, it slews the clock's time with the offset, by way of a call to adjtime(2). The latter technique is less disruptive and more accurate when the offset is small;
Хотелось бы аналог этого для Windows.
mahoune
Дата: 22.12.2007 14:24:15
На вскидку не скажу есть ли подобный механизм в Windows. Я не слышал, да и скорее всего нет его. Но на мой взгляд, раз уж у вас на столько необходима точность времени, я бы обращался к собственному источнику времени, если это возможно (поправил то приложение, которое так зависит от времени.

Как вам подсказали, первопричина скорее всего или в BIOS или в мамке, что странно.

Вопрос: На сколько за день у вас уходят часы? Если работа не круглосуточная, то начная поправка времени может помочь. Или синхронизация времени перед запусков приложения, критичного к точности часов с обязательным перезапуском приложения, раз в час, например.

Ещё одно предложение, поковырять реестр по адресу
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config

там достатчно много параметров, вдруг один из них отвечает за вашу проблему.

Подробнее тут.

.mahoune.
miksoft
Дата: 24.12.2007 14:33:04
mahoune
Подробнее тут.
За ссылку спасибо. Вроде бы, судя по параметрам, желаемое возможно. Буду разбираться.
MsDatabaseru
Дата: 24.12.2007 15:14:17
первопричина в кварцевом резонаторе или цепи коррекции частоты колебаний.
в старых материнках кварц был отдельный сейчас бывают чипы в котрых не используется кварц (а может просто меняют на кондер из экономии).

чтобы понизить частоту если кварц есть то его можно заменить новым с более низкой частотой (сотые доли)
или в паралель напаять конденсатор в единицы пикофарад

обычно кварц это деталь из нержавейки с двумя выводами.
часовой кварц обычно 32,7680kHz
miksoft
Дата: 24.12.2007 15:44:47
MsDatabaseru
чтобы понизить частоту если кварц есть то его можно заменить новым с более низкой частотой (сотые доли)
В серваке? :)
ладно уж вам глумиться...
MsDatabaseru
Дата: 24.12.2007 17:23:25
miksoft
MsDatabaseru
чтобы понизить частоту если кварц есть то его можно заменить новым с более низкой частотой (сотые доли)
В серваке? :)
ладно уж вам глумиться...


-сервак серваку рознь
-и чего теперь раз сервак так и паяльником до него дотронуться нельзя чтоль?

а программно меняется лишь частота коррекции насколько понимаю.
если часики убегают вперед неизбежно придется откатывать время назад