среда, 4 июля 2012 г.

Sunday Bloody Sunday

Я очень люблю U2, особенно их ранние вещи - но сегодня речь пойдет не о них, и даже не о тех давних событиях в Ирландии - а об этом воскресенье - первого июля. Оно получилось веселым.

Утро началось с того - что пришел алерт - сервер перестал отвечать по http. Добравшись до офиса - обнаружил что на сервере оба стоявших там liferay "съели" весь проц.
Перегружаю сервисы - таже фигня - стартуют медленно и сразу после старта загрузка на 100%.
Что за фигня? Времени разбираться не было - к тому же все равно в планах давно стоял перенос сервисов с этого сервера на новый. Что ж, время пришло - перенес оба Liferay на новый сервак (вместе со всем необходимым добром) - заработало отлично. Сделал и забыл.

Ближе к вечеру клиент на другом проекте пожаловался что какая-то фигня с тестовым сервером - зашел туда - фига себе - там тоже стояло два сервера liferay  - и каждый съедал 300% CPU -  в результате чего 6-ти ядерный сервер стоял колом.
Это мне уже не понравилось. "Это жжжж - не с проста!" (с) Винни-Пух.
Начинаю разбираться - на моем сервере  стояли Liferay 5.2.3 и  Liferay 6.0.6. У клиента два 6.1.0
То есть от версии Liferay не зависит...
От версии Java тоже (по крайней мере сановская ява и разные релизы 6-ки и 7-ки приводили к одному результату)...
Средства мониторинга ничего внятного не говорят...
Выясняю что если просто запустить голый Tomcat - тот начинает с ходу есть 200% CPU - что тоже не нормально...
Если бы это было на одном сервере - я бы еще списал на какой-то локальный глюк - но тут то это воспроизвелось на двух разных серверах.
Конечно общего было то что оба сервера стоят у Hertzner - но у меня еще у них есть сервер (куда собственно утром перенес два своих Liferay на которых я впервые заметил проблему).
Стал ставить OpenJDK (отрабатывал версию что глючит именно сановская ява) - и тут опа - при установке пакета ca-certificates программа keytool начинала есть 85%  и зависала (но при этом работала - периодически плевалась в лог). Походу что-то с ssl.  Во общем оставил я этот процесс на ночь.
Утром обнаружил - что сервер был перезапущен, оба Liferay работают и работают нормально. В чем дело - непонятно. Мистика - но мистику я не люблю - и хоть проблема решилась - неприятный осадок остался - так как осталась непонятна причина такого странного поведения.
И вот - получаю письмо от службы поддержки Hertzner:


Dear subscribers,

During the night of 30.06.2012 to 01.07.2012 our internal
monitoring systems registered an increase in the level of
IT power usage by approximately one megawatt.

The reason for this huge surge is the additional switched
leap second which can lead to permanent CPU load on Linux
servers.

According to heise.de, various Linux distributions are
affected by this. Further information can be found at:
http://www.h-online.com/open/news/item/Leap-second-Linux-can-freeze-1629805.html

In order to reduce CPU load to a normal level again, a
restart of the whole system is necessary in many cases. 

Вот оно в чем дело! Лишняя секунда! казалось бы - какая-то секунда - а столько шума. Странно что все это отразилось именно на java (по крайней мере в нашем случае) и как-то достаточно тихо прошло - я не видел ни в форумах Liferay  ни где-то еще криков "Аааа! Все пропало!"

Но теперь я могу спать спокойно - причина проблемы обнаружена.

Комментариев нет: