Почему часы моего компьютера, контролируемые NTP, на две минуты впереди?

32378
Martin Liversage

Часы в моем компьютере настроены для синхронизации с использованием NTP. Чтобы проверить это, я попробовал два NTP-клиента, использующих различные NTP-серверы. Мой компьютер и NTP-клиенты полностью согласны с текущим временем даже на широком спектре NTP-серверов.

У меня также есть GPS, и моя национальная телефонная компания предоставляет точные часы, звоня по определенному номеру телефона. И мой GPS, и телефонная компания согласны с текущим временем. Однако мой компьютер почти на две минуты (или 1 минуту и ​​59 секунд) опережает то, что я считаю «настоящим» текущим временем, в котором я живу.

Почему мой компьютер на две минуты впереди? Я понимаю, что синхронизация часов с использованием Интернета может быть не совсем точной, так как существует задержка, но две минуты - это очень много времени в Интернете. Действительно ли NTP на две минуты впереди? Я использую Windows 7 и живу в часовом поясе UTC + 1, но я не думаю, что это важно для понимания моей проблемы.

8
Итак, вы считаете, что ваш GPS и телефон работают в режиме "реального времени", но ваш компьютер "выключен на 2 минуты"? Я бы хотел сделать противоположный вывод. quack quixote 14 лет назад 1
Мой GPS получает информацию со спутников, и я предполагаю, что информация очень точная. Телефонная служба очень точна и может считаться чем-то вроде «национальных» часов. Я понимаю, что при использовании телефона может быть некоторое время ожидания, но задержка в две минуты сделает разговор невозможным. Martin Liversage 14 лет назад 3
Я согласен с Мартином Ливерсажем. Телефонная служба использовалась для определения времени астрономических событий не менее 20 лет. Например, лунные затмения, http://en.wikipedia.org/wiki/Occultation#Occultations_by_the_Moon, или астероидные затмения, http://en.wikipedia.org/wiki/Asteroid_occultation Peter Mortensen 14 лет назад 0
Какая служба времени вы используете, встроенная служба времени Windows или что-то еще? Zoredache 14 лет назад 1
Виртуальные машины обычно * не могут * правильно хранить время, поэтому они предоставляют службы синхронизации хоста. Лучшее решение состоит в том, чтобы правильно настроить службу NTP в хост-системе контроллера виртуального домена и оставить включенной синхронизацию времени гостя-гостя. quack quixote 14 лет назад 2
Поскольку ваше решение не соответствует ни одному из ответов, я бы предложил добавить его в качестве ответа на ваш вопрос, а затем принять его как правильный. Рекомендуется отвечать на ваши собственные вопросы - особенно по таким полезным вопросам, как этот. Emory Bell 14 лет назад 1
@Emory Bell: я сделаю, как вы предлагаете. Martin Liversage 14 лет назад 0

4 ответа на вопрос

15
GAThrawn

Время GPS не совпадает с временем UTC, оно очень близко.

GPS является очень точным источником разницы во времени, но, поскольку он не учитывает високосные секунды, он фактически не синхронизирован с UTC с января 1980 года. Однако впереди всего 15 секунд, так что это не так. т учесть вашу разницу в 2 минуты.

Если ваши другие источники времени основаны на международном стандарте атомных часов (TAI, Temps Atomique International), то они также не установлены в UTC, не потому что они неточные, а скорее потому, что UTC неточен по сравнению. Они не принимают во внимание високосные секунды, и их время основано на тиках стандарта SI «секунда», а не на вращении / орбите Земли, как UTC. Они примерно на 34 секунды впереди UTC. Все еще не учитывает вашу разницу.

Смотрите здесь http://leapsecond.com/java/gpsclock.htm или здесь http://en.wikipedia.org/wiki/Global_Position_System#Timekeeping для получения дополнительной информации.

Я собирался добавить это как комментарий, а не как ответ, так как он на самом деле не отвечает на вашу главную проблему, но для системы комментариев это было довольно долго GAThrawn 14 лет назад 1
GAThrawn, эта статья / раздел Википедии, на которую вы ссылались, заставляет меня поверить, что большинство GPS-приемников знают разницу между временем GPS и UTC и отображают UTC. Доверие пользователя было бы серьезно подорвано, если бы часы GPS-приемника были «постоянно выключены на 15 секунд» (как средний пользователь мог бы воспринимать ситуацию). Spiff 14 лет назад 1
@Spiff true, потребительские GPS-устройства знают разницу во времени, которую нужно применить перед отображением для пользователя, я думаю, что они делают это одновременно с применением любых разностей часовых поясов. Но это то, что устройство должно быть запрограммировано производителем, это не входит в спецификацию GPS. Я могу представить сценарии, в которых устройства, не предназначенные специально для потребителей, будут отображать фактическое время GPS, а не исправленное. GAThrawn 14 лет назад 1
11
Martin Liversage

К сожалению, я допустил некоторые ошибки, когда разместил свой вопрос. Я хотел обойти службу NTP моего компьютера, чтобы обеспечить независимый источник информации о времени в Интернете, и использовал для этого две простые утилиты. Я полагал, что эти утилиты получали информацию о времени из Интернета, используя NTP, когда они фактически отображали (неправильное) местное время на моем компьютере.

В моем начальном вопросе было довольно расплывчато о том, как NTP использовался моим компьютером. Он является частью домена Active Directory, и время синхронизируется с контроллером домена. Я проверил, что конфигурация была в порядке, но я пропустил небольшую деталь.

Решение

Контроллер домена работал в виртуальной машине Hyper-V. Служба времени Windows на контроллере домена была правильно настроена для использования NTP, но на виртуальной машине Hyper-V были включены все службы интеграции, включая синхронизацию времени . Этот параметр всегда будет синхронизировать время на виртуальной машине с хостом Hyper-V, даже если вы устанавливаете часы вручную или через NTP.

Решением было просто отключить эту конкретную службу интеграции в диспетчере Hyper-V для виртуальной машины контроллера домена. Перезапуск службы времени Windows сразу исправил время на контроллере домена и впоследствии на моем компьютере.

6
Spiff

Если вы отключите NTP, установите неправильные часы вашего компьютера на несколько минут (возможно, на 2 минуты медленнее, а не на 2 минуты вперед), а затем снова включите NTP, будет ли он на 2 минуты медленнее, или вернетесь на 2 минуты вперед?

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

Было бы интересно увидеть трассировку пакетов, показывающую ваши поиски NTP. Например, tcpdump "port 123" с установленными опциями "-v" и "-s0" должен показать то, что вам нужно знать.

Когда у меня будет больше времени, я сделаю еще один анализ. Сначала я полагал, что проблема была с NTP в моей локальной сети, но я использовал два NTP-клиента, которые не влияют на часы моего компьютера, а просто отображают время с NTP-сервера, и эти два клиента отображают точно такое же время, как время на моем компьютере. Это может быть проблема с преобразованием времени в местное время, но почему это добавило бы две минуты? Я буду исследовать дальше, используя некоторые ваши идеи. Martin Liversage 14 лет назад 0
4
bignose

Также важно помнить, что многие клиенты NTP отказываются менять часы в больших количествах ; если времена настолько противоречивы, то есть большая вероятность, что по крайней мере один из них совершенно неправильный и нуждается в вмешательстве человека.

Похожие вопросы