none
Скачки времени RRS feed

  • Вопрос

  • Добрый день.

    На сервере по непонятным причинам скачет локальное время. ОС Windws Server 2008 R2. Выключение сервиса (службы) синхронизации времени не помогло. Замена аккумуляторной батарейки на материнской плате не помогла. Время может с 14:00 скакнуть на 14:20, а в 14:40 может скакнуть в обратную сторону на 14:15. И получается, что некотые временные отметки, например, 14:30, сервер проходит дважды за одни и теже сутки. Одно из неприятных последствий: если на это время назначено некое задание (JOB базы данных), то оно выполнится дважды.

    Прошу подсказать причину и пути решения. Если нужна дополнительная информация - спрашивайте.

    Геннадий.

    19 октября 2012 г. 4:47

Ответы

  • Судя по найденной информации, причиной нашей проблемы со временем, является некорректная работа функции Windows - QueryPerformanceCounter c некоторыми моделями процессоров.

    Исправление:

    Run -> cmd -> bcdedit /set {default} USEPLATFORMCLOCK on

    После применения вышеописанного действия, скачки времени прекратились и в настоящее время не наблюдаются.

    16 ноября 2012 г. 3:03

Все ответы

  • Сервер в домене?

    А контроллер домена случаем не виртуалка?

    19 октября 2012 г. 7:33
  • Нет, сервер не в домене, он сам по себе, в своей собственной рабочей группе (он в ней один).

    Нет, обыкновенная установка ОС, ничего виртуального на сервере нет.

    19 октября 2012 г. 7:48
  • w32tm /query /configuration покажите пожалуйста
    19 октября 2012 г. 7:56
  • Форум не разрешает публиковать изображения. Вот ссылка на скриншот: http: // 96 . r . photoshare . ru /00965/009355f647caab8f7f034601d68687fa34dece3f.jpg   (в доменном имени лишние пробелы)
    19 октября 2012 г. 8:42
  • Выполните пожалуйста две команды:

    w32tm.exe /config /manualpeerlist:"time.nist.gov,0x8 ntp1.imvp.ru,0x8 ntp2.imvp.ru,0x8 time.windows.com,0x8 pool.ntp.org,0x8" /syncfromflags:manual /reliable:yes /update

    net stop w32time && net start w32time

    Службу NTP переведите в режим запуска "Авто". Понаблюдайте за результатом.


    19 октября 2012 г. 8:45
  • Форум не разрешает публиковать изображения. Вот ссылка на скриншот: http: // 96 . r . photoshare . ru /00965/009355f647caab8f7f034601d68687fa34dece3f.jpg   (в доменном имени лишние пробелы)

    На форуме работает вставка изображений.

    Сазонов Илья http://isazonov.wordpress.com/

    19 октября 2012 г. 9:46
    Модератор
  • а на PDC время не скачет?
    19 октября 2012 г. 14:19
    Модератор
  • Может, у Вас банально clock-drift? События от источника "w32time" какие регистрирутюся?..
    19 октября 2012 г. 14:45
    Отвечающий
  • Мы используем сервер времени, находящийся в нашей локальной сети, и создали несколько заданий, которые в итоге обеспечивают выполнение команды w32tm.exe /resync каждую минуту. Время всё равно скачет. Мы хотим минимизировать интервал обновления, чтобы как можно быстрее корректировалось неправильное время. Это борьба с последствиями, с причиной разобраться не можем.

    22 октября 2012 г. 3:17
  • Так у нас нет домена, сервер один единственный в рабочей группе.

    22 октября 2012 г. 3:22
  • У кого как... Мне пишет про то, что ещё не проверена моя учётная запись.
    22 октября 2012 г. 3:23
  • Если у Вас есть в локальной сети NTP-сервер (сервер времени), настройте службу w32tm на синхронизацию времени с ним. Пример настройки есть в ЭТОЙ СТАТЬЕ.

    Сергей Панченко

    22 октября 2012 г. 5:41
  • Может, у Вас банально clock-drift? События от источника "w32time" какие регистрирутюся?..

    Я не знаю, что такое "clock-drift". События от "w32time" не нашёл, скачки времени в событиях обозначены от ичсточника "Kernel-General".
    22 октября 2012 г. 6:02
  • Если у Вас есть в локальной сети NTP-сервер (сервер времени), настройте службу w32tm на синхронизацию времени с ним.

    Сергей Панченко

    Мы несколько ранее настроили синхронизацию по локальному серверу времени. И сейчас установим интервал обновления 10 секунд (пока ещё минута). Но синхронизации по времени - это борьба со следствием. Мы никак не можем понять причину сккачков времени. Не зная причину, сложно её побороть.

    22 октября 2012 г. 6:16
  • Я бы еще проверил, что на материнской плате работают энергонезависимые часы (если они неисправны, то просто заменой батарейки проблема не решается). Видел такую неисправность, поведение очень похожее на описываемое. Проверить так: выключите серввер, загрузите его в BIOS Setup, отметьте показания времени. Затем выключите сервер, подождите не менее 1 часа, загрузитесь в BIOS Setup и снова сравните время.

    22 октября 2012 г. 6:26
    Модератор
  • При работающем NTP-клиенте операционная система, вроде бы, не должна смотреть на энергонезависимые часы в BIOS/CMOS. Разве смотрит?

    Сергей Панченко

    22 октября 2012 г. 7:13
  • На самом деле смотрит. Точнее, алгоритм такой: сначала синхронизирует энергонезависимые часы по показаниям системных, а затем считывает показания энергонезависимых часов. Каких-либо доказательств у меня нет, только наблюдение, как вела себя Windows, когда в компьютере сломались энергонезависимые часы.
    22 октября 2012 г. 7:34
    Модератор
  • На самом деле смотрит. Точнее, алгоритм такой: сначала синхронизирует энергонезависимые часы по показаниям системных, а затем считывает показания энергонезависимых часов. Каких-либо доказательств у меня нет, только наблюдение, как вела себя Windows, когда в компьютере сломались энергонезависимые часы.

    Мы проверим этот вариант и сообщим результат. Я удивлён, что в компьютере есть несколько часов. Я всегда считал, что часы (источник даты и времени) всегда одни, и они "где-то там в BIOS'е". То есть, то, что я вижу в левом нижнем углу Рабочего стола, это то, что есть в BIOS'е. А если я меняю время в Windows, то я перетираю значение в BIOS'е.
    22 октября 2012 г. 10:57
  • Я удивлён, что в компьютере есть несколько часов. Я всегда считал, что часы (источник даты и времени) всегда одни, и они "где-то там в BIOS'е". То есть, то, что я вижу в левом нижнем углу Рабочего стола, это то, что есть в BIOS'е. А если я меняю время в Windows, то я перетираю значение в BIOS'е.

    То, что "в BIOS'е" - это энергонезависимые часы, которые считают время, пока компьютер выключен. То, что Вы видите в правом нижнем углу - это часы операционной системы, системные часы, системное время (по разному называют, но это одно и то же).

    При старте ОС обычно система считывает данные из энергонезависимых часов, а далее ведёт учёт времени по-своему. Если настроена синхронизация времени с внешним источником, то ОС может синхронизировать свои системные часы с этим внешним источником. При этом, после синхронизации, ОС может либо обновлять время в энергонезависимых часах, либо нет. Как ведёт себя конкретная ОС - зависит от реализации и настройки.

    NTP довольно сложен. С помощью его ОС может определить, насколько точно идут её системные часы и как часто требуется корректировка. Когда это будет определено, NTP-клиент обычно снижает частоту запросов к серверу времени (чтобы не перегружать сеть лишними запросами). В то же время, чтобы не пропустить какие-то запланированные действия, операционная система обычно не сразу передёргивает системное время на то, что получено от сервера времени, а искусственно укоряет или замедляет системные часы, чтобы выйти на точное время.

    Если у Вас часы дёргаются на целые минуты, это может означать следующее: в момент потери синхронизации времени ОС берёт время из энергонезависимых часов, показания которых значительно отличаются от точного времени. Затем, при восстановлении синхронизации, осуществляется коррекция системных часов. Потерь синхронизации при сипользовании NTP/SNTP избежать не возможно даже в локальной сети: ведь в NTP используется UDP - негарантированная доставка дэйтаграмм.

    В Вашем случае, видимо, нужно как-то отучить ОС вообще лазать к энергонезависимым часам.


    Сергей Панченко


    • Изменено Daemon-GTC 23 октября 2012 г. 5:33
    23 октября 2012 г. 5:23
  • На самом деле смотрит. Точнее, алгоритм такой: сначала синхронизирует энергонезависимые часы по показаниям системных, а затем считывает показания энергонезависимых часов. Каких-либо доказательств у меня нет, только наблюдение, как вела себя Windows, когда в компьютере сломались энергонезависимые часы.

    Мы проверим этот вариант и сообщим результат. Я удивлён, что в компьютере есть несколько часов. Я всегда считал, что часы (источник даты и времени) всегда одни, и они "где-то там в BIOS'е". То есть, то, что я вижу в левом нижнем углу Рабочего стола, это то, что есть в BIOS'е. А если я меняю время в Windows, то я перетираю значение в BIOS'е.

    Проверить вариант в дневное время пока ещё не представляется возможным, так как сервер днём постоянно под нагрузкой, нужно получатьразрешение на его останов. А в вечернее время время и так не скачет, то есть не будет чистоты эксперимента. Как получим разрешение на останов, так проверим. Спасибо за совет.
    23 октября 2012 г. 5:34
  • Я удивлён, что в компьютере есть несколько часов. Я всегда считал, что часы (источник даты и времени) всегда одни, и они "где-то там в BIOS'е". То есть, то, что я вижу в левом нижнем углу Рабочего стола, это то, что есть в BIOS'е. А если я меняю время в Windows, то я перетираю значение в BIOS'е.

    То, что "в BIOS'е" - это энергонезависимые часы, которые считают время, пока компьютер выключен. То, что Вы видите в правом нижнем углу - это часы операционной системы, системные часы, системное время (по разному называют, но это одно и то же).

    При старте ОС обычно система считывает данные из энергонезависимых часов, а далее ведёт учёт времени по-своему. Если настроена синхронизация времени с внешним источником, то ОС может синхронизировать свои системные часы с этим внешним источником. При этом, после синхронизации, ОС может либо обновлять время в энергонезависимых часах, либо нет. Как ведёт себя конкретная ОС - зависит от реализации и настройки.


    Сергей Панченко


    Понятно. В компьютере двое часов: энергонезависимые (BIOS) и энергозависимые (ОС, оперативная память).
    23 октября 2012 г. 5:35
  • От нашего сисадмина, логи скачков времени.

    TimeCreated  : 18.10.2012 16:57:17
    ProviderName : Microsoft-Windows-Kernel-General
    Id           : 1
    Message      : The system time has changed to ‎2012‎-‎10‎-‎18T10:57:17.500000000Z from ‎2012‎-‎10‎-‎18T11:12:20.5029297
                   00Z.

    TimeCreated  : 18.10.2012 16:12:20
    ProviderName : Microsoft-Windows-Kernel-General
    Id           : 1
    Message      : The system time has changed to ‎2012‎-‎10‎-‎18T10:12:20.500000000Z from ‎2012‎-‎10‎-‎18T10:17:00.5146484
                   00Z.

    TimeCreated  : 18.10.2012 14:17:00
    ProviderName : Microsoft-Windows-Kernel-General
    Id           : 1
    Message      : The system time has changed to ‎2012‎-‎10‎-‎18T08:17:00.500000000Z from ‎2012‎-‎10‎-‎18T08:19:00.5000000
                   00Z.

    TimeCreated  : 18.10.2012 12:19:00
    ProviderName : Microsoft-Windows-Kernel-General
    Id           : 1
    Message      : The system time has changed to ‎2012‎-‎10‎-‎18T06:19:00.500000000Z from ‎2012‎-‎10‎-‎18T06:23:21.5039063
                   00Z.

    TimeCreated  : 18.10.2012 11:23:21
    ProviderName : Microsoft-Windows-Kernel-General
    Id           : 1
    Message      : The system time has changed to ‎2012‎-‎10‎-‎18T05:23:21.500000000Z from ‎2012‎-‎10‎-‎18T05:25:07.5117187
                   00Z.

    TimeCreated  : 18.10.2012 10:25:07
    ProviderName : Microsoft-Windows-Kernel-General
    Id           : 1
    Message      : The system time has changed to ‎2012‎-‎10‎-‎18T04:25:07.500000000Z from ‎2012‎-‎10‎-‎18T04:36:03.5019531
                   00Z.

    TimeCreated  : 18.10.2012 9:36:03
    ProviderName : Microsoft-Windows-Kernel-General
    Id           : 1
    Message      : The system time has changed to ‎2012‎-‎10‎-‎18T03:36:03.500000000Z from ‎2012‎-‎10‎-‎18T03:48:50.6298828
                   00Z.

    TimeCreated  : 17.10.2012 21:14:29
    ProviderName : Microsoft-Windows-Kernel-General
    Id           : 1
    Message      : The system time has changed to ‎2012‎-‎10‎-‎17T15:14:29.500000000Z from ‎2012‎-‎10‎-‎17T15:24:53.5029297
                   00Z.

    TimeCreated  : 17.10.2012 20:24:53
    ProviderName : Microsoft-Windows-Kernel-General
    Id           : 1
    Message      : The system time has changed to ‎2012‎-‎10‎-‎17T14:24:53.500000000Z from ‎2012‎-‎10‎-‎17T14:34:45.5087891
                   00Z.

    TimeCreated  : 17.10.2012 19:34:45
    ProviderName : Microsoft-Windows-Kernel-General
    Id           : 1
    Message      : The system time has changed to ‎2012‎-‎10‎-‎17T13:34:45.500000000Z from ‎2012‎-‎10‎-‎17T13:36:36.5214844
                   00Z.

    TimeCreated  : 17.10.2012 17:36:36
    ProviderName : Microsoft-Windows-Kernel-General
    Id           : 1
    Message      : The system time has changed to ‎2012‎-‎10‎-‎17T11:36:36.500000000Z from ‎2012‎-‎10‎-‎17T11:39:40.5009765
                   00Z.

    TimeCreated  : 17.10.2012 16:39:40
    ProviderName : Microsoft-Windows-Kernel-General
    Id           : 1
    Message      : The system time has changed to ‎2012‎-‎10‎-‎17T10:39:40.500000000Z from ‎2012‎-‎10‎-‎17T10:54:14.5136719
                   00Z.

    TimeCreated  : 17.10.2012 15:54:14
    ProviderName : Microsoft-Windows-Kernel-General
    Id           : 1
    Message      : The system time has changed to ‎2012‎-‎10‎-‎17T09:54:14.500000000Z from ‎2012‎-‎10‎-‎17T10:00:11.5000000
                   00Z.

    TimeCreated  : 17.10.2012 15:00:11
    ProviderName : Microsoft-Windows-Kernel-General
    Id           : 1
    Message      : The system time has changed to ‎2012‎-‎10‎-‎17T09:00:11.500000000Z from ‎2012‎-‎10‎-‎17T09:10:35.5000000
                   00Z.

    TimeCreated  : 17.10.2012 14:10:35
    ProviderName : Microsoft-Windows-Kernel-General
    Id           : 1
    Message      : The system time has changed to ‎2012‎-‎10‎-‎17T08:10:35.500000000Z from ‎2012‎-‎10‎-‎17T08:17:37.5166016
                   00Z.

    TimeCreated  : 17.10.2012 12:17:37
    ProviderName : Microsoft-Windows-Kernel-General
    Id           : 1
    Message      : The system time has changed to ‎2012‎-‎10‎-‎17T06:17:37.500000000Z from ‎2012‎-‎10‎-‎17T06:21:55.5039062
                   00Z.

    TimeCreated  : 17.10.2012 11:21:55
    ProviderName : Microsoft-Windows-Kernel-General
    Id           : 1
    Message      : The system time has changed to ‎2012‎-‎10‎-‎17T05:21:55.500000000Z from ‎2012‎-‎10‎-‎17T05:27:25.5126953
                   00Z.

    TimeCreated  : 17.10.2012 10:27:25
    ProviderName : Microsoft-Windows-Kernel-General
    Id           : 1
    Message      : The system time has changed to ‎2012‎-‎10‎-‎17T04:27:25.500000000Z from ‎2012‎-‎10‎-‎17T04:37:02.5000000
                   00Z.

    TimeCreated  : 17.10.2012 9:37:02
    ProviderName : Microsoft-Windows-Kernel-General
    Id           : 1
    Message      : The system time has changed to ‎2012‎-‎10‎-‎17T03:37:02.500000000Z from ‎2012‎-‎10‎-‎17T03:50:01.5800781
                   00Z.

     

     

    23 октября 2012 г. 5:36
  • У нас появилось предположение, что время сбивает одно приложение, написанное на Java. При выключении этого приложения время перестаёт скакать (по логам). Точнее, время скачет днём и при включенном приложении. А вот ночью при включенном приложении - не скачет. Сейчас мы пытаемся понять, что к чему, есть предположение, что здесь ещё как-то замешана СУБД MS SQL Server 2008, посколько время скачет в те моменты, когда в БД происходят вставки данных. Тех данных, которые обрабатывает приложение на Java. Пока экспериментируем...
    24 октября 2012 г. 7:38
  • Геннадий Миронов, что показало расследование?

    Мнения, высказанные здесь, являются отражением моих личных взглядов, а не позиции корпорации Microsoft. Вся информация предоставляется "как есть" без каких-либо гарантий

    29 октября 2012 г. 13:34
  • Добрый день!

    Проблема один в один, только на ноутбуке с ОС Windows 7 x64.

    В системном журнале записи вида:

    Системное время изменено с ‎2012‎-‎10‎-‎30T05:27:58.129356800Z на ‎2012‎-‎10‎-‎30T04:40:22.500000000Z.

    Проблема появилась несколько дней назад, хотя записей от этого источника много и за гораздо более ранние периоды. Антивирусная проверка Kaspersky Internet Security 2012 сказала что угроз нет. Единственное на что грешу - возможно система не обновлена последними патчами (достаточно давно не обновлялись). Может быть, проблема как-то связана с несостоявшимся переходом на зимнее время. Когда заходишь в настройки часов, принудительно синхронизируешь время с интернетом, время ставится корректно.

    С уважением, Константин.

    P.S. Пока писал опять скакнуло :(

    30 октября 2012 г. 6:28
  • Вчера, 06-11-2012, произвели обновление ОС через Windows Update. Сегодня утром в логах всё так же вижу сообщения о скачках времени.
    6 ноября 2012 г. 5:12
  • Вот что прислал мой коллега.

    Коллеги, есть некоторые догадки относительно скачков времени.

    Оказывается, эта проблема известная, просто мало кто заглядывает в журнал событий и обращает внимание на переводы времени. Я, так или иначе, надеюсь, что ноги растут именно отсюда.

    В некоторых многоядерных процессорах AMD и Intell (у нас интел, 4 ядра) есть какие-то непонятки с синхронизацией времени между потоками (ядрами). Происходить это может по разным причинам. 1 - работает механизм изменения тактовой частоты процессора для энергосбережения. 2 - кривые драйвера чипсета и процессора. 3 - кривая прошивка биоса.

    Операционная система, того не зная, использует резервы функции QueryPerformanceCounter. В свою очередь QPC использует TSC. TSC - это счетчик времени высокого разрешения для измерения продолжительности всякой ерунды, и, в том числе, ЗАДЕРЖЕК, которые можно использовать программно.

    Майкрософт утверждает, что использовать TSC неправильно, т.к. QueryPerformanceCounter может возвращать некорректные значения.

    Они говорят, что при помощи команды /usepmtimer, прописанной в файл Boot.ini операционка перейдет на другой механизм расчета времени - PM_Timer и таймер событий высокой точности HPET. Так же, в базе знаний упоминается некий патч, который, как я понял, переводит операционку на использование других счетчиков другим методом.

    Давайте проверим этот вариант? Он не сложный.

     

    Нужно будет кое что протестировать приблизительно в то время, когда у нас наиболее часто скачет время (ближе к обеду). Сможешь зайти на сервак через RDP (нужно, чтобы не было открытых сессий RAdmin) и пингануть localhost. Обрати внимание на время доставки пакета! Если время не имеет аномально больших или отрицательных значений, значит эта теория не верна.

    Если, все же, имеет, то это объясняет, почему с программной задержкой в 35 миллисекунд (SMPP клиент) мы можем отправить больше 30 СМС в секунду.

     

     

    15 ноября 2012 г. 10:42
  • После изменений в boot.ini скачки времени перестали иметь место (уже сутки). Окончательно выводы делать рано, но есть надежда.
    15 ноября 2012 г. 10:44
  • Судя по найденной информации, причиной нашей проблемы со временем, является некорректная работа функции Windows - QueryPerformanceCounter c некоторыми моделями процессоров.

    Исправление:

    Run -> cmd -> bcdedit /set {default} USEPLATFORMCLOCK on

    После применения вышеописанного действия, скачки времени прекратились и в настоящее время не наблюдаются.

    16 ноября 2012 г. 3:03
  • Все же поясните, о какой операционной системе идет речь. В одном посте вы сообщаете, что отредактировали boot.ini, в другом пишете про bcdedit.
    16 ноября 2012 г. 4:59
    Модератор
  • Уважаемый пользователь!

    В вашей теме отсутствует активность в течение последних 5 дней. При отсутствии каких-либо действий в течение 2 последующих дней, тема будет переведена в разряд обсуждений. Вы можете возобновить дискуссию, просто оставив сообщение в данной теме.


    Мнения, высказанные здесь, являются отражением моих личных взглядов, а не позиции корпорации Microsoft. Вся информация предоставляется "как есть" без каких-либо гарантий

    21 ноября 2012 г. 12:18
    Модератор
  • Все же поясните, о какой операционной системе идет речь. В одном посте вы сообщаете, что отредактировали boot.ini, в другом пишете про bcdedit.

    Microsoft Windows 2008 Server R2 Standard Service Pack 1 (x64, English)
    22 ноября 2012 г. 4:51