Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Все наглухо виснит
On 13.05.2009, at 21:15, Konstantin Belov wrote:
Алексей wrote:
Добрый день, коллеги
есть 3 машины. nginx apache mysql и браузерная
игра в стадии беты.
Иногда все просто умирает.Все
происходит при онлайне 100
человек.Загрузка проца минимальная
на всех машинах;
Мое расследование показало что
изначально висит база. чтото ее
вешает. Апач не дожидается ответа и
начинает плодить процессы и в
результате у него воникает
популярное "server reached MaxClients setting" (ребут
апача не помогает) ну а nginx ждет апача.
Эту теорию подтверждает то что
система мониторинга (netxms) тоже не
может получить доступ к базе во время
данного "эвента")
Лечит ситуацию час ожидания или
ребут дб сервера, ибо mysql не хочет по
хорошему убиватся.
Под базу выделена машина 2xquad xeon 2.66 16Gb
ram . мощность нехилая. конфиги mysql
если надо - напишу.
Среднее количество запросов при ~50
юзеров онлайн . 1.23К в секунду.
1200 req/sec ?
что же будет при 2к игроков? :-)
Сегодня делал стресс тест апачу
скриптом содержащим в себе немного
запросов к базе, мемкешу и просто
вычислений. все летает . Тест
показывает что 2-3к юзеров держится
без лагов.
Игровой проект скоро будет запущен ,
и после оф запуска , пуска рекламы и
огромного количества юзеров. такие
штуки крайне нежелательы.
Вообщем подскажите в какую сторону
смотреть.
P.S. из mysql-slow лога выловлены запросы,
но они безобидные. присутствует
кстати много join-ов от которых
програмисты обещали мне поскорее
избавится.
так в чём же дело? надо найти мотивацию,
чтобы они скорее избавились?
С уважение,Алексей
Добавьте в лог время обработки
запросов и смотрите, что долго
выполняется.
http://sysoev.ru/nginx/docs/http/ngx_http_upstream.html#variables
ну и напишет там нгинх 30 секунд или
сколько там тайм-аут стоит. чем это
поможет? просто по логам можно
посмотреть первую 502 ошибку и глянуть с
чего приблизительно началось
$upstream_response_time ? в переменной хранятся
времена ответов серверов в секундах с
точностью до миллисекунд. Несколько
ответов также разделяются запятыми и
двоеточиями.
$upstream_status ? в переменной хранятся
коды ответов серверов. Несколько
ответов также разделяются запятыми и
двоеточиями.
P. S. может ддос? :-)
может и ддос
mytop чтоли поставьте
и логи мускула анализировать надо
слоу-лог разве не достаточно ясно дал
понять в чём дело?
а ОС какая? версия мускула и всё прочее ?
в пхп-май-админе есть интересная
страница, где он красным всякие
недотюниности показывает, Status
называется
тоже полезно почитать чего там пишут
P.S.: тема, кстати, полный офф-топ
|