Bash скрипт проверки сервера на зависание
В последнее время сборки от Карателя у меня на сервере страдают фризами. Сервер намертво ловил фриза и не мог из него выбраться. установка значения MaxCoreStuckTime = 60 все так же не помогла исправить это положение. Потому набросал простенький скрипт и поставил его на авто выполнение каждые 10 минут. Возможно кому нибудь он и пригодится. У меня он словил 100% фризов. Тестировался в течении 3 недель.
Собственно сам скрипт: Код:
#!/bin/sh Код:
SELECT IF ((UNIX_TIMESTAMP() - (`starttime`+`uptime`)) >= 700 , 1, 0) AS 'freez' FROM `uptime` ORDER BY `starttime` DESC LIMIT 1 |
Этот скрипт ловит фризы не мангоса а мускуля. Может проще разобраться с его настройкой и настройкой стека на машине?
PS крайний фриз на сборке Карателя я видел полгода назад. из-за собственных кривых ручек. |
эм... А если на мускле что-то кроме мангоса висит - что будет?
|
MaxCoreStuckTime побольше поставить - и все. У меня стоит 10 минут - ни разу не имел проблем с "зависанием".
|
Хм. Не совсем грамотная проверка-то выходит. Можно сделать иначе. Заставьте ядро каждые N минут писать в какой-нибудь файлик статистику по работе. И в скрипте проверяйте время последней модификации файла тоже раз в N минут. После M таких проверок и необнаружения изменений файла - перезапускайте сервер.
|
а soap если задействовать для этих целей?
|
Soap - стрельба из пушки по воробьям. Я вообще слабо понимаю смысл включения инструмента, предназначенного для распределенных систем, в ядро, где распределенности никакой и в помине нет. А коли не нужен контроль состояния других нодов в сети, то баш скрипт прекрасно справится с задачей.
|
SOAP использовать не правильно тут=)
Тут наверное правильнее будет использовать сокеты, пытаться приконектиться к серверу. На баше может быть и нету нужного функционала, но на питоне такой скрипт сваять можно быстро. |
Ну при сокетах еще желательно было бы ответ получить вида "Yes, I'm alive", а не гадать на кофейной гуще, по какой причине сервер нашу попытку подключения сбросил/мы с таймаутом вывалились/вообще подключиться не удалось. Так что ядро модифицировать все равно придется.
|
как то писал скрипт мониторинга.. просто ps+grep+awk...
CPU=`ps aux | grep $pid | grep -v grep | | awk '{print $3}' | awk -F. '{print $1}'` |
Цитата:
|
Да, действительно лишняя ;)
|
Текущее время: 07:58. Часовой пояс GMT +3. |
ru-mangos.ru - Русское сообщество MaNGOS