Новости IT, хостинга
Новость от 29.06.2015

Адрес в интернете:
https://news.hostdb.ru/index/show/id/10982

30 июня при синхронизации времени появится лишняя секунда


C целью синхронизации с астрономическим временем Земли эталонные мировые атомные часы завтра будут приостановлены на одну секунду, что приведёт к появлению 61 секунды в одной из минут. В прошлый раз подобная синхронизация состоялась в 2012 году и привела к массовым сбоям в серверных системах, в которых была настроена синхронизация точного времени по протоколу NTP. Из-за неготовности обработать появление лишней секунды некоторые системы зацикливались и начинали потреблять излишние ресурсы CPU.

Фактически лишняя секунда будет добавлена на атомных часах в 23:59:60 GMT. В разных системах используются разные методы для предотвращения сбоев в приложениях, связанных с появлением аномальной 61 секунды. Учитывая печальный опыт прошлого, современные дистрибутивы Linux, а также проекты FreeBSD и OpenBSD, своевременно подготовились к грядущему появлению лишней секунды. Тем не менее, в конце мая в ядре Linux выявлена недоработка, которая может привести к срабатыванию некоторых таймеров на секунду раньше намеченного срока. Патч с исправлением данной проблемы не успел попасть в основной состав ядра.

В реализации NTP из состава FreeBSD реализован способ, основанный на повторении одной секунды два раза, т.е. будет два раза выдано значение 23:59:59, вместо появления 23:59:60. Другим способом решения проблемы является сглаживание добавляемой секунды путём её разбиения на несколько циклов синхронизации времени, с прибавлением каждый раз по доле секунды, что приведёт к плавному размыванию секунды по большому отрезку времени.

Так как большинство публичных NTP-серверов отдают лишнюю секунду как есть, без её размытия на серию интервалов, администраторам рекомендуется предварительно протестировать поведение своих систем, чтобы не столкнуться с непредвиденным ночным сбоем. Не раньше, чем за сутки до намеченного добавления лишней секунды можно выполнить команду "ntpq -c 'rv 0 leap'" - если в выводе будет указано leap_add_sec, то используемый NTP-сервер корректно поддерживает операцию добавления лишней секунды.


Распечатано с HostDB.ru.