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:

enter image description here

Django + сервер nginx: enter image description here

СерверDB(postgres): enter image description here

После 5 минут непрерывной загрузки. enter image description here

Если вам необходима какая-либо другая информация, пожалуйста, сообщите мне.

  1. Проверьте производительность вашего приложения с помощью инструмента profiler tool
  2. В зависимости от результата вы также можете захотеть проверить журналы запросов Postgresql и статистику
  3. Не запускайте JMeter в режиме GUI, возможно, вы получаете ложные отрицательные результаты, потому что JMeter не может отправлять запросы достаточно быстро и/или застрял из-за сборки мусора
  4. .
  5. Следуйте другим JMeter Best Practices и убедитесь, что JMeter не испытывает недостатка в CPU, RAM и т.д.
  6. .
Вернуться на верх