![]() |
![]() |
|
Tools Обсуждение программ для MaNGOS |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
![]() |
#1 |
Новичок
Регистрация: 28.04.2010
Адрес: Беларусь, Мозырь
Сообщений: 27
Сказал(а) спасибо: 12
Поблагодарили 6 раз(а) в 4 сообщениях
Записей в дневнике: 1
![]() |
![]()
В последнее время сборки от Карателя у меня на сервере страдают фризами. Сервер намертво ловил фриза и не мог из него выбраться. установка значения 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 |
![]() |
![]() |
![]() |
#2 |
Почетный флудер
Старожил
Регистрация: 08.03.2010
Адрес: Мурманск, Россия
Сообщений: 788
Сказал(а) спасибо: 55
Поблагодарили 333 раз(а) в 151 сообщениях
Записей в дневнике: 1
![]() ![]() ![]() ![]() |
![]()
Этот скрипт ловит фризы не мангоса а мускуля. Может проще разобраться с его настройкой и настройкой стека на машине?
PS крайний фриз на сборке Карателя я видел полгода назад. из-за собственных кривых ручек. |
![]() |
![]() |
![]() |
#3 |
Forum bot
Регистрация: 01.02.2010
Адрес: пусто
Сообщений: 841
Сказал(а) спасибо: 286
Поблагодарили 418 раз(а) в 190 сообщениях
Записей в дневнике: 60
![]() |
![]()
эм... А если на мускле что-то кроме мангоса висит - что будет?
__________________
Совершенно безопасен для людей, обладающих хотя бы некоторыми минимальными зачатками интеллекта, и способными строить причинно-следственные цепочки. |
![]() |
![]() |
![]() |
#4 |
Ученый
Регистрация: 07.03.2010
Сообщений: 138
Сказал(а) спасибо: 200
Поблагодарили 143 раз(а) в 49 сообщениях
![]() ![]() |
![]()
MaxCoreStuckTime побольше поставить - и все. У меня стоит 10 минут - ни разу не имел проблем с "зависанием".
|
![]() |
![]() |
![]() |
#5 |
Гость
Сообщений: n/a
|
![]()
Хм. Не совсем грамотная проверка-то выходит. Можно сделать иначе. Заставьте ядро каждые N минут писать в какой-нибудь файлик статистику по работе. И в скрипте проверяйте время последней модификации файла тоже раз в N минут. После M таких проверок и необнаружения изменений файла - перезапускайте сервер.
|
![]() |
![]() |
#7 |
Гость
Сообщений: n/a
|
![]()
Soap - стрельба из пушки по воробьям. Я вообще слабо понимаю смысл включения инструмента, предназначенного для распределенных систем, в ядро, где распределенности никакой и в помине нет. А коли не нужен контроль состояния других нодов в сети, то баш скрипт прекрасно справится с задачей.
|
![]() |
![]() |
#8 |
Пользователь
Регистрация: 07.03.2010
Адрес: Норильск
Сообщений: 51
Сказал(а) спасибо: 28
Поблагодарили 31 раз(а) в 15 сообщениях
Записей в дневнике: 3
![]() |
![]()
SOAP использовать не правильно тут
![]() Тут наверное правильнее будет использовать сокеты, пытаться приконектиться к серверу. На баше может быть и нету нужного функционала, но на питоне такой скрипт сваять можно быстро. |
![]() |
![]() |
![]() |
#9 |
Гость
Сообщений: n/a
|
![]()
Ну при сокетах еще желательно было бы ответ получить вида "Yes, I'm alive", а не гадать на кофейной гуще, по какой причине сервер нашу попытку подключения сбросил/мы с таймаутом вывалились/вообще подключиться не удалось. Так что ядро модифицировать все равно придется.
|
![]() |
![]() |
#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. |
![]() |
![]() |
![]() |
#11 |
Гость
Сообщений: n/a
|
![]() |
![]() |
![]() |
#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 |