Назад | Перейти на главную страницу

Стресс-тестирование приложения Django - как повысить производительность?

У меня первая попытка стресс-тестирования простого веб-приложения django, запущенного из gunicorn и nginx, которое я установил на небольшой сервер Rackspace Cloud объемом 256 МБ.

Используя httperf, я увеличиваю количество подключений в секунду, пока не начну получать ошибки, например.

httperf --hog --server=localhost --uri=/myapp --timeout=10 --num-conns=2500 --rate=25

Я обнаружил, что для простой почти статической страницы из django я могу получить около 35 запросов в секунду до того, как начнут выдавать ошибки.

Для более динамичной страницы, требующей поиска в базе данных и некоторой дополнительной обработки, я могу получить около 25 запросов в секунду.

Первоначально я использовал только 1 воркера-пулеметчика, но увеличение до 4 воркеров (я думаю, что у моего облачного сервера 4 ядра), похоже, не имело никакого значения (он по-прежнему начинает выдавать ошибки выше 25 запросов в секунду).

Эти результаты звучат примерно так, как ожидалось, учитывая, что он работает на таком маленьком (256 МБ) сервере?

Кроме того, могу ли я внести какие-либо изменения для повышения пропускной способности?