У меня есть хост AMD Athlon XP-2500 + (материнская плата Shuttle MN31, чипсет nForce 2 IGP + MCP-T) с 32-разрядной версией Ubuntu 9.10 (i686 2.6.31-20-generic ядро). К сожалению, кажется, что смещение часов на нем настолько велико (оно приближается к дополнительной секунде каждую минуту), что ntpd не может синхронизировать машину.
Как мне с этим справиться, чтобы заставить ntpd работать?
Решение состоит в том, чтобы использовать пакет adjtimex, чтобы дать вашему ядру знать, сколько времени действительно проходит во время каждого такта ядра. Если его идея отличается от реальности, системные часы будут работать быстрее или медленнее. Я цитирую из Заставить NTP работать на оборудовании с большим дрейфом часов:
После установки пакет обычно запускает команду adjtimexconfig. Это позволит сравнить системные часы с аппаратными часами реального времени в течение семидесяти секунд или около того и определить, насколько быстрее или медленнее системные часы. Затем он запустит команду adjtimex с параметром -t, чтобы установить параметр «тик», который представляет собой количество микросекунд, на которое часы должны двигаться вперед с каждым тиком ядра. Он также обновит эту информацию в файле / etc / default / adjtimex, чтобы она сохранялась при перезагрузках.
Проблема может быть одной из нескольких часы или таймеры являются особенно неточными или возможно неисправными пассивными компонентами генератора или таймера / часов (включая RTC) (кварцевый кристалл и любые связанные конденсаторы). Если это причина, возможно, вы не сможете полностью ее обойти, если для вас критично точное время.
Чипсет nVidia nForce2 для материнских плат известен как очень неустойчивый. Также существует вероятность, что APIC и ACPI, Процессоры с переменной скоростью, и Front Side Bus (FSB) Расширенный спектр (SS) генераторы / часы влияют на точность. Одна потенциальная проблема программного обеспечения (ядра) связана с некоторыми версиями ядра 2.6.x. неправильное определение частоты TSC (счетчик временных меток), а некоторые процессоры AMD регулируют TSC в зависимости от тактовой частоты ядра процессора (т. е. для энергосбережения, аналогично SpeedStep в процессорах Intel).
Если вы еще этого не сделали, посмотрите документацию NTP для Устранение проблем с NTP.
Если ничего из вышеперечисленного не снижает неустойчивое поведение часов, вы можете откалибровать их вручную, используя adjtimex и NTP. Обязательно удалите все существующие файлы дрейфа NTP /var/lib/ntp/ntp.drift
в Ubuntu может находиться в / etc / ntp / в некоторых других системах Unix / Linux) или записи в ntp.conf.
Приносим извинения за возможное утверждение очевидного, но убедитесь, что у вас есть 3 или 4 достижимый Серверы NTP, включенные в файл конфигурации NTP (обычно /etc/ntp.conf
или похожие). И, пожалуйста, используйте (общедоступные) серверы «близко» к вам. Большинство интернет-провайдеров или сетевых провайдеров предлагают бесплатный доступ к собственному внутреннему серверу NTP, используй это. в противном случае используйте общедоступные серверы от http://pool.ntp.org/, желательно расположенный в вашей провинции / штате или, по крайней мере, в стране.
Мой текущий совет - запускать ntpdate раз в минуту из crontab root. Это перемещает время назад чуть менее чем на секунду каждую минуту. Я не очень доволен этим решением. Тем не менее, это демонстрирует постоянство дрейфа:
ntpdate[20526]: step time server 218.45.21.199 offset -0.932912 sec
ntpdate[20549]: step time server 218.45.21.199 offset -0.932647 sec
ntpdate[20572]: step time server 218.45.21.199 offset -0.922805 sec
ntpdate[20597]: step time server 218.45.21.199 offset -0.949046 sec
ntpdate[20621]: step time server 219.117.196.238 offset -0.941480 sec
ntpdate[20650]: step time server 219.117.196.238 offset -0.925179 sec
ntpdate[20673]: step time server 219.117.196.238 offset -0.930992 sec
ntpdate[20698]: step time server 219.117.196.238 offset -0.949393 sec
ntpdate[20726]: step time server 219.117.196.238 offset -0.923139 sec
ntpdate[20751]: step time server 219.117.196.238 offset -0.933554 sec
Вы можете отредактировать файл конфигурации (обычно /etc/ntp.conf), чтобы установить несколько полезных вещей, таких как minpoll:
minpoll, maxpoll
These options specify the minimum and maximum poll intervals for NTP messages, in seconds as a power of two.The maximum poll interval defaults to 10 (1,024 s), but can be increased by the maxpoll option to an upper limit of 17 (36.4 h). The minimum poll interval defaults to 6 (64 s), but can be decreased by the minpoll option to a lower limit of 4 (16 s). These option are valid only with the server and peer commands.
Попробуйте удалить параметр «-g» из параметров командной строки ntpd.