Тестирование нагрузки

Тема в разделе "Администрирование серверов", создана пользователем casinolot, 14 фев 2013.

Модераторы: mefish, stooper
  1. casinolot

    casinolot

    Регистр.:
    22 окт 2010
    Сообщения:
    547
    Симпатии:
    84
    Не знаю в правильный ли раздел
    Но начал тестировать свой сервер через Siege
    и в жёстком тесте при 1000 одновременных юзеров по одному запросу без задержек, только 60% смогли получить ответы.
    Что мне проанализировать и что поменять чтобы улучшить этот показатель, пока только идеи в оптимизации запросов к Базе и кэширование. Или я не прав?
     
  2. unkn0wn

    unkn0wn

    Регистр.:
    22 дек 2006
    Сообщения:
    163
    Симпатии:
    86
    Прежде всего, анализируйте вывод top. Главные параметры - load average и %CPU на процессы. Если LA>15, это уже плохо, большие потери на переключение контекстов, доходящие до 50% процессорного времени. Далее анализируется, кто создает затык - это либо PHP, либо MySQL. Если PHP - используйте профайлер навроде xdebug, если MySQL - включите slow_query_log, также анализируйте запросы через explain, по этой теме манов в сети предостаточно.
     
  3. DmitrySyrov

    DmitrySyrov Создатель

    Регистр.:
    5 фев 2013
    Сообщения:
    24
    Симпатии:
    4
    Немного не соглашусь.
    1. По опыту LA>6 это уже плохо.
    2. Учитывая производительность современных CPU, load averages растет, как правило, когда сервер упирается в скорость работы дисковой подсистемы.
    3. С Mysql тоже не все однозначно. Бывает невозможно оптимизировать работу MySQL без реинжениринга БД, особенно, если эту самую БД проектировали криворукие индусы...

    Плюс для тестирования веб-серверов помнится были еще утилитки типа AutoBench, OpenWebLoad и тд.