Ru-MaNGOS

Вернуться   Ru-MaNGOS > Дополнения > Tools

Важная информация

Tools Обсуждение программ для MaNGOS

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 04.06.2010, 15:10   #1
deadangel
Новичок
 
Аватар для deadangel
 
Регистрация: 28.04.2010
Адрес: Беларусь, Мозырь
Сообщений: 27
Сказал(а) спасибо: 12
Поблагодарили 6 раз(а) в 4 сообщениях
Записей в дневнике: 1
deadangel На верном пути
Отправить сообщение для deadangel с помощью ICQ Отправить сообщение для deadangel с помощью Skype™
По умолчанию 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
А вот файл с запросом для этого скрипта check.sql:
Код:
SELECT IF ((UNIX_TIMESTAMP() - (`starttime`+`uptime`)) >= 700 , 1, 0) AS 'freez'  FROM `uptime` ORDER BY `starttime` DESC LIMIT 1
deadangel вне форума   Ответить с цитированием
Старый 04.06.2010, 17:55   #2
rsa
Почетный флудер
Старожил
 
Аватар для rsa
 
Регистрация: 08.03.2010
Адрес: Мурманск, Россия
Сообщений: 788
Сказал(а) спасибо: 55
Поблагодарили 333 раз(а) в 151 сообщениях
Записей в дневнике: 1
rsa Как самоцвет среди гранитаrsa Как самоцвет среди гранитаrsa Как самоцвет среди гранитаrsa Как самоцвет среди гранита
По умолчанию

Этот скрипт ловит фризы не мангоса а мускуля. Может проще разобраться с его настройкой и настройкой стека на машине?
PS крайний фриз на сборке Карателя я видел полгода назад. из-за собственных кривых ручек.
rsa вне форума   Ответить с цитированием
Старый 04.06.2010, 17:57   #3
tempura
Forum bot
 
Аватар для tempura
 
Регистрация: 01.02.2010
Адрес: пусто
Сообщений: 841
Сказал(а) спасибо: 286
Поблагодарили 418 раз(а) в 190 сообщениях
Записей в дневнике: 60
tempura отключил(а) отображение уровня репутации
По умолчанию

эм... А если на мускле что-то кроме мангоса висит - что будет?
__________________
Совершенно безопасен для людей, обладающих хотя бы некоторыми минимальными зачатками интеллекта, и способными строить причинно-следственные цепочки.
tempura вне форума   Ответить с цитированием
Старый 04.06.2010, 18:48   #4
PSZ
Ученый
 
Регистрация: 07.03.2010
Сообщений: 138
Сказал(а) спасибо: 200
Поблагодарили 143 раз(а) в 49 сообщениях
PSZ Обладатель прекрасной аурыPSZ Обладатель прекрасной ауры
По умолчанию

MaxCoreStuckTime побольше поставить - и все. У меня стоит 10 минут - ни разу не имел проблем с "зависанием".
PSZ вне форума   Ответить с цитированием
Старый 05.06.2010, 22:59   #5
Astellar
Гость
 
Сообщений: n/a
По умолчанию

Хм. Не совсем грамотная проверка-то выходит. Можно сделать иначе. Заставьте ядро каждые N минут писать в какой-нибудь файлик статистику по работе. И в скрипте проверяйте время последней модификации файла тоже раз в N минут. После M таких проверок и необнаружения изменений файла - перезапускайте сервер.
  Ответить с цитированием
Старый 05.06.2010, 23:01   #6
Konctantin
RuDB Dev
 
Аватар для Konctantin
 
Регистрация: 01.02.2010
Адрес: localhost
Сообщений: 592
Сказал(а) спасибо: 323
Поблагодарили 283 раз(а) в 122 сообщениях
Записей в дневнике: 2
Konctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всем
По умолчанию

а soap если задействовать для этих целей?
__________________
Konctantin вне форума   Ответить с цитированием
Старый 05.06.2010, 23:18   #7
Astellar
Гость
 
Сообщений: n/a
По умолчанию

Soap - стрельба из пушки по воробьям. Я вообще слабо понимаю смысл включения инструмента, предназначенного для распределенных систем, в ядро, где распределенности никакой и в помине нет. А коли не нужен контроль состояния других нодов в сети, то баш скрипт прекрасно справится с задачей.
  Ответить с цитированием
Старый 05.06.2010, 23:34   #8
CruncH
Пользователь
 
Регистрация: 07.03.2010
Адрес: Норильск
Сообщений: 51
Сказал(а) спасибо: 28
Поблагодарили 31 раз(а) в 15 сообщениях
Записей в дневнике: 3
CruncH На верном пути
Отправить сообщение для CruncH с помощью ICQ
По умолчанию

SOAP использовать не правильно тут
Тут наверное правильнее будет использовать сокеты, пытаться приконектиться к серверу.
На баше может быть и нету нужного функционала, но на питоне такой скрипт сваять можно быстро.
__________________
CruncH вне форума   Ответить с цитированием
Старый 05.06.2010, 23:51   #9
Astellar
Гость
 
Сообщений: n/a
По умолчанию

Ну при сокетах еще желательно было бы ответ получить вида "Yes, I'm alive", а не гадать на кофейной гуще, по какой причине сервер нашу попытку подключения сбросил/мы с таймаутом вывалились/вообще подключиться не удалось. Так что ядро модифицировать все равно придется.
  Ответить с цитированием
Старый 06.06.2010, 06:57   #10
zhenya
Пользователь
 
Регистрация: 12.03.2010
Сообщений: 85
Сказал(а) спасибо: 5
Поблагодарили 42 раз(а) в 17 сообщениях
zhenya Скоро придёт к известности
По умолчанию

как то писал скрипт мониторинга.. просто ps+grep+awk...

CPU=`ps aux | grep $pid | grep -v grep | | awk '{print $3}' | awk -F. '{print $1}'`

Последний раз редактировалось zhenya; 06.06.2010 в 07:00.
zhenya вне форума   Ответить с цитированием
Старый 06.06.2010, 09:27   #11
Astellar
Гость
 
Сообщений: n/a
По умолчанию

Цитата:
Сообщение от zhenya Посмотреть сообщение
как то писал скрипт мониторинга.. просто ps+grep+awk...

CPU=`ps aux | grep $pid | grep -v grep | | awk '{print $3}' | awk -F. '{print $1}'`
Лишняя "|", это если кто-то использовать захочет. Да и не всегда по использованию процессора можно о зависании сервера говорить
  Ответить с цитированием
Старый 06.06.2010, 13:26   #12
zhenya
Пользователь
 
Регистрация: 12.03.2010
Сообщений: 85
Сказал(а) спасибо: 5
Поблагодарили 42 раз(а) в 17 сообщениях
zhenya Скоро придёт к известности
По умолчанию

Да, действительно лишняя
zhenya вне форума   Ответить с цитированием
Ответ

Метки
cron, mysql


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Алгоритм проверки 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


Текущее время: 11:31. Часовой пояс GMT +3.


ru-mangos.ru - Русское сообщество MaNGOS
Главная цель проекта MaNGOS - обучающая, поэтому разрешается использовать исходный код и собранную программу только для образовательных целей.
Вы не можете использовать MaNGOS в коммерческих целях, а также не разрешается устанавливать публичные серверы на базе MaNGOS.
Любое копирование материалов, информации в любом виде без указания источника - форума Ru-MaNGOS будет считаться нарушением авторских прав и нарушением Уголовного Кодекса РФ, ст. 146 ст. 147.
Перевод vBulletin: zCarot