Pull to refresh

Comments 102

Просвятите в каких сервисах важны десятые и сотые секунды?
Везде, где на многих серверах в разных частях мира обрабатываются данные, сильно зависящие от времени.

Я темой заинтересовался, когда из-за упомянутой особенности Убунты набежало 2 минуты разницы во времени и собираемые данные стыли вконец «разъезжаться» :-)
Просто если пустить на самотек — десятыми долями секунды дело не ограничится :-)
когда сдаешь манор в lineage, то не дай бог рука на сотую долю секунды дрогнет :))
На это дело нужно забить, и вернутся в реальную жизнь.
Это неплохая площадка для программирования :-)
Самому играть вовсе не обязательно :-)

Впрочем, это уже тема для отдельной статьи :-)
не лучше ли тогда Second Life в этом отношении осваивать?
Вам похоже возвращение в реальную жизнь не помогло научиться правильно писать на родном языке.

Но правописание тся/ться — это тоже тема для отдельной статьи :-)
В данном случае меня мои девчёнки (жена, дочка и крестная дочка) потащили на кухню кушать пельмени и мне не когда было проверить, что я там написал. А граммарнаци пусть слюни пускают на мои мягкие знаки. ололололо :)
некоторым классам на 76+ быстрее нафармить просто дропом, чем заморачиваться манором и его сдачей
Полагаю что там нужно не точное мировое время, а время максимально приближенное к серверному. Кто знает, когда, как и откуда он обновлялся?
Ну очевидно же — для тарификации сотовых операторов!
Не-нет-нет, чем точнее они обсчитают абонента — тем им лучше.
Это точно, округлять в плюс это они умеют. Что секунды, что килобайты (причем с точностью не 1 кбайт, а 300Кбайт. Да-да, пинганули 8.8.8.8, а заплатили за 300кбайт трафика)
— Никакой ошибки быть не может — у нас точность до тысячной доли секунды!
Вот такой вот у них может быть ответ :)
Если у вас вебсервер на одной машине а база на другой, то синхронизация очень важна, особенно если дело касается работы с деньгами.
позновательно, автору спасибо =)
PPS. Не могу понять, в какой блог перенести, подскажите :-)

В «DIY или Сделай Сам» =)
UFO landed and left these words here
подтверждаю. Такое оборудование выпускают Oscilloquartz и Symmetricom. Я его видел, стоит в обычной 19-дюймовой стойке, максимум 5U
Денег стоит наверное как серебро один к одному по весу?
Это было бы очень дешево ) Там коробочка 5 на 5 сантиметров, я лично в шоке :-)
А для получения времени с GPS или Глонасс нужно (очень) дорогостоящее оборудование?
UFO landed and left these words here
А откуда GPS (спутники?) берут точно время?
на борту каждого спутника стоят атомные часы, время от времени спутники синхронизируются друг с другом и с «землей».
На каждом спутнике атомные часы установлены + постоянная синхронизация. Это обязательное требование
опять забыл коменты обновить
UFO landed and left these words here
То же самое, все 3 системы спутниковой навигации чертовски похожи :-)
UFO landed and left these words here
Еще нет у них ничего, только планы и экспериментальные запуски…
Есть европейская Galileo, но она в широкую эксплуатацию так до сих пор и не пошла, хотя предназначалась для коммерческого использования. Их коды взломали еще до запуска продаж и на этом дело притихло, но сколько-то спутников работают.
Галилео посчитана в этих 3-х :-)
UFO landed and left these words here
Чорт! В английской части вики о глонасе написано больше, чем в русской (
Больше всего меня в этих спутниках поражает тот факт, что часы на них учитывают теорию относительности (прочитал у Хокинга). Это как будто привет из «Star Trek».
Ну скорости там немалые. А точность нужна большая. Вот и приходится :)
Старый анекдот вспомнился.
СССР, 4й год перестройки.
За столом сидит генерал, и с мрачным лицом пьёт водку.
Тут из радиоточки доносится:
Передаём сигналы точного времени:
В Москве – 15 часов, в Куйбышеве – 16, в Свердловске – 17, в Красноярске – 19, в Иркутске 20,
в Петропавловске-Камчатском – полночь.
Генерал бьёт по столу кулаком, восклицая — Ну, бля бардак в стране!

За статью спасибо, интересно.
А как обрабатывается задержка при передаче информации, между сервером и компьютером пользователя?
UFO landed and left these words here
Интересная штука… Если кто по-русски объяснит как оно работает, был бы благодарен.
Хорошей иллюстрацией будет задачка Рэймонда М. Смаллиана (1978)
Вопрос:
У одного человека не было наручных часов, но зато дома висели точные настенные часы, которые он иногда забывал заводить.
Однажды, забыв в очередной раз завести часы, он отправился в гости к своему другу, провел у того вечер, а вернувшись домой, сумел правильно поставить часы.
Каким образом ему удалось это сделать, если время в пути заранее известно не было?
Ответ:
Выходя из дома, человек заводит часы и запоминает, в каком положении находятся стрелки. Придя к другу и уходя из гостей, он отмечает время своего прихода и ухода. Это позволяет ему узнать, сколько он находился в гостях. Вернувшись домой и взглянув на часы, человек определяет продолжительность своего отсутствия. Вычитая из этого времени то время, которое он провел в гостях, человек узнает время, затраченное на дорогу туда и обратно. Прибавив ко времени выхода из гостей половину времени, затраченного на дорогу, он получает возможность узнать время прихода домой и перевести соответствующим образом стрелки своих часов.
а как учитывается асимметрия задержки?
Видимо группой запросов и набором статистики по ним.
По-моему это малореально. Даже не представляю как можно померить задержку в одну сторону.
Кажется отсюда берется «Сразу бросаются в глаза сервера, имеющие постоянную ошибку до 20 мс.»
Ну, почему малореально: «пинг» несколько раз, считаем среднее, и прибавляем к полученному времени.
Постоянная задержка 20мс — это уже проблема сервера.

До американских серверов пинг 200мс, а отклонение времени обычно не более 10мс.
ping — это задержка туда + обратно, а сколько туда и сколько обратно — неизвестно.
Шлем свой timestamp, сервер с ответом прикрепляет свой, по приёму опять смотрим свой.
Повторяем 10 раз. Bingo :-)
Во, вот это уже похоже на правду :)
Вот это и есть имеемая в виду серия запросов. Серия позволяет уменьшит процент ошибки от случайных единовременных факторов.
Вы правы. В протоколе нет такой возможности. Из наблюдений, ~20 мс наблюдается между ростелекомом и остальным рунетом. Это стало одной из причин, по которой доступ к моему Stratum 1 серверу предоставляется только после предварительной договоренности.
P.S. официальные российские ntp-сервера работают через Ростелеком.
Не до конца понял вашу мысль.
Carry ошибался инфа 100%, компенсация пинга — основная фича NTP.

Доступ к Stratum1 закрывают обычно чтобы посторонние люди запросами не флудили и все.
Вот эта компенсация пинга и дает ошибку при постоянной асимметрии роутинга. Для простоты арифметики представим, что у нас есть две машины с идеальными часами. В момент t одна машина шлет другой пакет. Допустим, он идет 30 мс. В момент t+30 мс вторая машина получает этот пакет, помещает в него свой таймштамп (t+30) и отсылает обратно. И тут вдруг пакет идет по более длинному маршруту уже за 70 мс. Таким образом первая машина получает ответ на свой запрос в t+100. Так как никаких данных как и с какой скоростью шел пакет, машина предполагает, что путь туда и обратно занимал одинаковое время, следовательно, вторая машина поместила свой таймштамп в t+50. В таймстампе при этом t+30 и первая машина считает, что ее часы бегут на 20 мс. А так как такое происходит всегда, эту ошибку нельзя выявить какими-либо статистическими методами.
Думаю, что в данном случае мне несколько виднее, почему я ограничил доступ к своему серверу.
Есть еще такая штука как синхронизация первичных цифровых синхронных сетей (SDH). Устройства таких сетей должны быть синхронизированы, чтобы внутренние тактовые генераторы могли распознавать временные интервалы в цифровых потоках.
На сети РЖД есть своя сеть тактовых сетевых генераторов, которая состоит из Первичных Эталонных Генераторов (ПЭГ, они же Stratum-1), Ведомых/Вторичных Задающих Генераторов (ВЗГ) и сетевых устройств.
Так вот сейчас остро стоит вопрос передачи синхросигнала через сети Ethernet (в связи с распространением последней на транспортных сетях), и NTP протокол отчаянно сосет в этом плане. На смену ему изобретен протокол PTP v2 (IEEE-1588-2008)
UFO landed and left these words here
А для простых смертных есть возможность перейти на этот протокол? На линукс-сервере?
IEEE 1588 aka Precision Time Protocol (аналог NTP, который при поддержке железа умеет синхрить время до порядка наносекунд, без поддержки — до микросекунд, образ линукса для тестирования www.ixxat.com/evaluation-kit-linux-live-cd_en.html)
Большое спасибо!
а простым смертным важны микросекунды и маленький джиттер?
Не знаю, я просто любопытен, как и все гики.
А может мне кто-нибудь сказать как вынуть из ответа NTP сервера милисекунды?
Вот что отвечает NTP на «волшебный пакет»: 0x1C0301FA0000024F000000005F8C5E02CEE1FDE8A2191FFF0000000000000000CEE214E934B547FFCEE214E934B587FF
UFO landed and left these words here
ntpdate — это уже готовая программа. Я же пытаюсь встроить синхронизацию времени в свою программу.
Отправляю по UDP пакет, в ответ приходит строка, указанная выше. В ней содержится информация о секундах, прошедших с 1 января 1900-го. Их я могу выделить. Но вот миллисекунды не знаю как…
Я бы, честно говоря, взял исходник ntpdate и посмотрел там, что да как. По-моему, это самое простое :)
UFO landed and left these words here
Верно, но сути вопроса не меняет.
UFO landed and left these words here
rfc спасет отца русской демократии
педанты, а у нас на некоторых серверах время по GMT, а где то просто — «по Москве» (про миллисекунды никто даже не заикается). Зато разбирать логи очень занимательное занятие)
> В Windows синхронизация происходит раз в сутки
>

Нет, раз в неделю, чтобы сделать раз в сутки надо подредактировать ключ реестра
точно, раз в неделю
>>«Простым» смертным обращаться к Stratum-1 серверам строго запрещено

А что будет? Забанят? Или это просто на уровне совета?
UFO landed and left these words here
немного оффтоп: а графики вы с помощью чего делали? Случайно не с помощью rrdtool?
жутко похожи на munin, только видимо с плагином каким-то для конкретно этой задачи
> Случайно не с помощью rrdtool?

Обратите внимание на надпись по правому краю :)
В статье написано что мунин, и написано какой плагин использовался :-)
в linux под вмварой которая на linux время может убегать на 6 часов за сутки спокойно… очень долго бился над проблемой в итоге понял, что проще поставить синхронизацию кроном раз в 5 мин… благо точность небольшая нужна)
Чтобы не убегало под вмварью, надо ядру указать частоту шедулера поменьше. Скажем, 100.

В FreeBSD это делается изменением параметра HZ в конфиге ядра, в линуксе наверняка есть подобное же.
в linux под вмварой которая на linux время может убегать на 6 часов за сутки спокойно
По-моему, после установки VMware Tools можно включить синхронизацию времени гостевой ОС с часами хостовой ОС.
Вообще ставить синхронизацию кроном, это глупость и очень большая. Демон сам все умеет делать и делает это когда надо + он учитывает погрешность после определенного периода работы.
На крон ставить надо, если только провайдер блокировал порты.
6 часов за сутки — это разница периода в 25%, причем, в vmware это получается скачками. ntpd при этом говорит что «вы, товарищи, совсем офигели — микроскопом гвозди забивать» и нервно курит.
Ну если такая пьянка то да, просто крон в общем то не должна являться панацеей.
а я по мере надобности вручную синхронизируюсь с wwp.greenwichmeantime.com/ — как показал опыт, нтп-сервера выставляли неверное время…
давненько столкнулся с этой проблемой.
машины в онлайне висят по неск месяцев…
с тех пор завел привычку делать ntpdate на месный укр серв ежедневно при бекапе.
Не верю я этим NTP-серверам, по крайней мере time.nist.gov.
У нас на фре один раз время уехало почти на 50 лет вперёд.
Насколько я знаю, существует технология при которой такие большие ошибки (сбои) корректируются.
Во-первых, скачок времени более какой-то заданной допустимой дельты (например, секунда или минута) при обычной синхронизации может игнорироваться. При желании разницу времени больше этой дельты можно синхронизировать только жёстко принудительно со специальным ключиком вручную.
А во-вторых, есть схемы синхронизации, когда в качестве источника времени используется сразу несколько NTP-серверов. Значения с тех NTP-серверов, чьи показания слишком сильно отличаются от остальных серверов, вообще отбрасываются, а по оставшимся вычисляется средний показатель по которому и синхронизируются системные часы. Это избавляет от ошибки на одном из NTP-серверов.
На моей старой работе были сервера, не подключенные к интернету. Я купил GPS-приёмник с интерфейсом RS-232 и поднял NTP. Антенну прилепил на магните на подоконник. Работало идеально.
А т.к. DNS тоже были внутренние, прописал запись time.windows.com с IP своего сервера, в итоге даже машины без домена всегда получали точное время.
Вот, про такой способ создания своих Stratum-1 серверов я и писал, написали бы статью о настройке NTP сервера в связке с GPS приемником :-)
Ещё кому-нибудь интересно? ^_^
Завтра попробую раздобыть боевой конфиг.
Даже в нашей солнечной Молдавии есть Stratum-1 сервак, неожидано!
А часы должны показывать точное время, иначе они не часы. Так же и с календарем.
Тут: leapsecond.com/java/gpsclock.htm пишут, что из за leap seconds время в системе GPS смещено от UTC на несколько секунд. Как в ntpd учесть это смещение при использовании GPS в качестве источника времени?
Настраивают так, что ntp с GPS берет только PPS сигнал, а само время — с других серверов.
Так ошибиться сложнее.
Only those users with full accounts are able to leave comments. Log in, please.