|
Tools Обсуждение программ для MaNGOS |
|
Опции темы | Поиск в этой теме | Опции просмотра |
04.06.2010, 15:10 | #1 |
Новичок
Регистрация: 28.04.2010
Адрес: Беларусь, Мозырь
Сообщений: 27
Сказал(а) спасибо: 12
Поблагодарили 6 раз(а) в 4 сообщениях
Записей в дневнике: 1
|
Bash скрипт проверки сервера на зависание
В последнее время сборки от Карателя у меня на сервере страдают фризами. Сервер намертво ловил фриза и не мог из него выбраться. установка значения MaxCoreStuckTime = 60 все так же не помогла исправить это положение. Потому набросал простенький скрипт и поставил его на авто выполнение каждые 10 минут. Возможно кому нибудь он и пригодится. У меня он словил 100% фризов. Тестировался в течении 3 недель.
Собственно сам скрипт: Код:
#!/bin/sh DATE=$(date) FREEZ=$(mysql -u<username> -p<password> realmd < /opt/mangos/etc/freezcheck/check.sql | grep "[0|1]") case $FREEZ in 0) echo '['$DATE'] Проверка на фриз сервера прошла успешно.' ;; 1) echo '['$DATE'] Зависание сервера. Сервер перезапущен.' /opt/mangos/stop /opt/mangos/start ;; *) echo '['$DATE'] Неверное значение ответа мускуля: '$FREEZ ;; esac Код:
SELECT IF ((UNIX_TIMESTAMP() - (`starttime`+`uptime`)) >= 700 , 1, 0) AS 'freez' FROM `uptime` ORDER BY `starttime` DESC LIMIT 1 |
04.06.2010, 17:55 | #2 |
Почетный флудер
Старожил
Регистрация: 08.03.2010
Адрес: Мурманск, Россия
Сообщений: 788
Сказал(а) спасибо: 55
Поблагодарили 333 раз(а) в 151 сообщениях
Записей в дневнике: 1
|
Этот скрипт ловит фризы не мангоса а мускуля. Может проще разобраться с его настройкой и настройкой стека на машине?
PS крайний фриз на сборке Карателя я видел полгода назад. из-за собственных кривых ручек. |
04.06.2010, 17:57 | #3 |
Forum bot
Регистрация: 01.02.2010
Адрес: пусто
Сообщений: 841
Сказал(а) спасибо: 286
Поблагодарили 418 раз(а) в 190 сообщениях
Записей в дневнике: 60
|
эм... А если на мускле что-то кроме мангоса висит - что будет?
__________________
Совершенно безопасен для людей, обладающих хотя бы некоторыми минимальными зачатками интеллекта, и способными строить причинно-следственные цепочки. |
04.06.2010, 18:48 | #4 |
Ученый
Регистрация: 07.03.2010
Сообщений: 138
Сказал(а) спасибо: 200
Поблагодарили 143 раз(а) в 49 сообщениях
|
MaxCoreStuckTime побольше поставить - и все. У меня стоит 10 минут - ни разу не имел проблем с "зависанием".
|
05.06.2010, 22:59 | #5 |
Гость
Сообщений: n/a
|
Хм. Не совсем грамотная проверка-то выходит. Можно сделать иначе. Заставьте ядро каждые N минут писать в какой-нибудь файлик статистику по работе. И в скрипте проверяйте время последней модификации файла тоже раз в N минут. После M таких проверок и необнаружения изменений файла - перезапускайте сервер.
|
05.06.2010, 23:18 | #7 |
Гость
Сообщений: n/a
|
Soap - стрельба из пушки по воробьям. Я вообще слабо понимаю смысл включения инструмента, предназначенного для распределенных систем, в ядро, где распределенности никакой и в помине нет. А коли не нужен контроль состояния других нодов в сети, то баш скрипт прекрасно справится с задачей.
|
05.06.2010, 23:34 | #8 |
Пользователь
Регистрация: 07.03.2010
Адрес: Норильск
Сообщений: 51
Сказал(а) спасибо: 28
Поблагодарили 31 раз(а) в 15 сообщениях
Записей в дневнике: 3
|
SOAP использовать не правильно тут
Тут наверное правильнее будет использовать сокеты, пытаться приконектиться к серверу. На баше может быть и нету нужного функционала, но на питоне такой скрипт сваять можно быстро. |
05.06.2010, 23:51 | #9 |
Гость
Сообщений: n/a
|
Ну при сокетах еще желательно было бы ответ получить вида "Yes, I'm alive", а не гадать на кофейной гуще, по какой причине сервер нашу попытку подключения сбросил/мы с таймаутом вывалились/вообще подключиться не удалось. Так что ядро модифицировать все равно придется.
|
06.06.2010, 06:57 | #10 |
Пользователь
Регистрация: 12.03.2010
Сообщений: 85
Сказал(а) спасибо: 5
Поблагодарили 42 раз(а) в 17 сообщениях
|
как то писал скрипт мониторинга.. просто ps+grep+awk...
CPU=`ps aux | grep $pid | grep -v grep | | awk '{print $3}' | awk -F. '{print $1}'` Последний раз редактировалось zhenya; 06.06.2010 в 07:00. |
06.06.2010, 09:27 | #11 |
Гость
Сообщений: n/a
|
|
06.06.2010, 13:26 | #12 |
Пользователь
Регистрация: 12.03.2010
Сообщений: 85
Сказал(а) спасибо: 5
Поблагодарили 42 раз(а) в 17 сообщениях
|
Да, действительно лишняя
|
Метки |
cron, mysql |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Алгоритм проверки TargetAuraState в CheckCast() | rsa | Баг-репорты | 7 | 16.03.2011 11:04 |
Зависание системы | boombastik | Корзина | 30 | 10.11.2010 18:03 |
[Help] скрипт | _PARADOX_ | Корзина | 3 | 02.06.2010 18:29 |
Bash скрипт для автоматизации процесса применения sql обновлений. | Astellar | Tools | 0 | 31.05.2010 00:07 |
Зависание персонажа | serg1 | Корзина | 7 | 17.04.2010 05:03 |