LINUX.ORG.RU

Как сделать Django быстрой?

 ,


1

3

Доброй ночи! Есть сайт nginx+Plack+Mojolicious+MySQL, есть аналогичный на nginx+uWSGI+Django+MySQL. Решил погонять тесты siege (с=100, r=100). Первый показывает 50rps, второй - 7. Железо одно и то же. Запросы к базе оптимизировал, там в районе 5-10 мс.

Понимаю, что должно быть примерно одно и то же по производительности. Может как-то хитро надо конфигурировать Django|uWSGI?

uwsgi.ini:

[uwsgi]
socket = 127.0.0.1:8001
chdir = /path/to/xyz
module = xyz.wsgi:application
master = True
pidfile = /var/run/uwsgi_xyz.pid
processes = 4
threads = 2
uid = xyz
gid = xyz
harakiri = 60
max-requests = 5000
vacuum = True
home = /home/xyz/.virtualenvs/xyz
touch-reload = /home/xyz/reload
buffer-size = 32768
env = DJANGO_SETTINGS_MODULE=xyz.settings.prod
plugins=python


По умолчанию жанга не кеширует скомпилированные темплейты. Она их на каждый запрос перечитывает с диска и компилирует заново - https://docs.djangoproject.com/en/dev/ref/templates/api/.

вот так сделай:

TEMPLATE_LOADERS = (
('django.template.loaders.cached.Loader', (
'django.template.loaders.filesystem.Loader',
'django.template.loaders.app_directories.Loader',
)),
)
shimshimshim
()
Ответ на: комментарий от shimshimshim

Спасибо! Получил ускорение 20%. Ещё upstream через unix socket сделал, а не inet.

bug
() автор топика
Ответ на: комментарий от Deleted

Видимо, чтобы на деве не перезапускать постоянно.

bug
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.