четверг, 30 октября 2014 г.

Symfony2 и 160 человек на сайте

Интересная история у нас тут на днях приключилась)
Так вышло что нам пришлось временно переключить архивы старого сайта predanie.ru/audio|film|muz на новую медиатеку media.predanie.ru которую мы скоро будем запускать на symfony.
Местами мы используем symfony http cache на сайте и в некоторых местах doctrine result cache. Мы были очень удивлены, что наш сайт начал загибаться когда к нам зашли одновременно 150-160 человек. Зайдя по ssh на сервер - было видно что apache начинает генерировать кучу процессов httpd. Количество процессов подчас достигало отметки более 200. Более 200 процессов httpd - это уже слишком.
Все этому приводило к тому что апач просто переставал работать и сайт становился недоступен.
Сейчас анализируя ситуацию - я понимаю, что одна из проблем это фоновые ajax запросы на главной странице. Мы используем angularjs и при заходе на главную страницу мы отправляли 2 одновременных запроса, которые возвращали рекомендуемые и новые произведения. Результаты фоновых запросов не кешировались.
Пока мы решили вообще убрать фоновые запросы на главной странице и закешировать ajax запросы которые возвращают произведения в json формате.
Хотим теперь сделать нагрузочное тестирование с помощью JMeter или loadimpact.com.
Надеюсь ситуация улучшится. Позже постараюсь отписаться об успехах)

Комментариев нет:

Отправить комментарий