Django, DRF, nginx, Jmeter: Время выборки становится большим, даже если нет нагрузки на CPU, и т.д.
Я использую Jmeter
для нагрузочного тестирования DRF
, и хотя процессор и память не работают на 100%, пропускная способность и время отклика медленные.
Серверы Django
+ nginx
и Postgres
разделены, и оба имеют следующие характеристики
4CPU, 4GB памяти.
nginx использует docker's https-portal
, как показано ниже.
version: "3"
services:
https-portal:
image: steveltn/https-portal:1
ports:
- "80:80"
- "443:443"
environment:
DOMAINS: "my.domain.com -> http://backend:8000"
STAGE: "production"
volumes:
- https-portal-data:/var/lib/https-portal
- ./nginx/uwsgi_params:/etc/nginx/uwsgi_params
- ./static:/static
depends_on:
- backend
restart: always
backend:
build: .
command: uwsgi --http :8000 --module myapp.wsgi --processes 4
volumes:
- .:/usr/src/app
- ./static:/usr/src/app/static
expose:
- 8000
env_file:
- .env
- .env.prod
restart: always
volumes:
https-portal-data:
Просматривая журналы django, кажется, что с django все в порядке, как вы думаете, что может быть причиной этого?
generated 8302 bytes in 29 msecs (HTTP/1.0 200) 7 headers in 208 bytes (1 switches on core 0)
Установка Jmeter:
После 5 минут непрерывной загрузки.
Если вам необходима какая-либо другая информация, пожалуйста, сообщите мне.
- Проверьте производительность вашего приложения с помощью инструмента profiler tool
- В зависимости от результата вы также можете захотеть проверить журналы запросов Postgresql и статистику
- Не запускайте JMeter в режиме GUI, возможно, вы получаете ложные отрицательные результаты, потому что JMeter не может отправлять запросы достаточно быстро и/или застрял из-за сборки мусора .
- Следуйте другим JMeter Best Practices и убедитесь, что JMeter не испытывает недостатка в CPU, RAM и т.д. .