Онлайн-консультация

Тел. в Москве: +7 495 _ 576 00 45
Тел. в СПБ: +7 812 _ 448 39 55
intranetoffice

631044003
Перевод мировых атомных часов на одну секунду привёл к массовому зависанию серверных приложений
2012.07.02 14:05

В полночь с 30 июня на 1 июля с целью синхронизации с астрономическим временем Земли эталонные мировые атомные часы были приостановлены на одну секунду, таким образом в последней минуте оказалось 61 секунда.

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

В итоге, испытывали проблемы с работой некоторые сайты (в том числе Reddit, LinkedIn и Mozilla), наблюдалось массовое зависание серверных приложений (в основном приложения работающие в Java VM, такие как Hadoop и Cassandra), начинала съедать все процессорные ресурсы СУБД MySQL, отключились VPN-туннели на базе OpеnVPN, зависали Linux-серверы.

В большинстве случаев администраторы были вынуждены перезапустить зависшие серверы. Тем не менее, для стабилизации некоторых приложений, начавших потреблять излишние ресурсы CPU, достаточно было вручную выставить корректное время через команду "date `date +"%m%d%H%M%C%y.%S"`".

Для некоторых систем мог дополнительно потребоваться останов ntpd на время выполнения данной команды и перезапуск пожирающих CPU приложений. Интересно, что в системе отслеживания ошибок Red Hat информация о возможной проблеме была опубликована ещё в 2009 году и исправлена в RHEL 5.4 (дополнительно было опубликовано уведомление, что RHEL не подвержен проблеме). В марте 2012 года в ядре Linux была выявлена и исправлена проблема с зависанием при появлении лишней секунды на некоторых системах с таймером высокого разрешения (когда ntpd вызывал adjtimex в ядре оставалась неубранной блокировка). О зависании Linux-серверов в основном сообщают пользователи систем с необновлённым ванильным ядром, собранным вручную, а также пользователи штатных пакетов с Linux ядрами 2.6.32, 3.1 и 3.2 из состава Debian GNU/Linux.

Добавление лишней секунды для синхронизации времени с периодом вращения земли производится не в первый раз, прошлое прибавление состоялось 31 декабря 2008 года и обошлось без глобальных проблем. В прошлом году внимание к проблеме пыталась поднять компания Google, поделившись своим методом устранения негативного эффекта - разбиеним лишней секунды на большой интервал корректировки, с прибавлением каждый раз по миллисекунде, что приведёт к плавному размыванию секунды по большому отрезку времени. Похожее готовое практическое решение (скрипт для плавного прибавления секунды) месяц назад опубликовал один из разработчиков Opera.

 

 

Источник: OpenNet


О проекте · Коммуникатор · Система задач · Заметки · IP-телефония · Контакты
© 2010, ЗАО "Российская внебиржевая сеть"
           
Rambler's Top100