Масштабирование веб-сервера Docker для распределенных процессоров

version: '3.7'

services:

  web:
    command: python manage.py runserver 0.0.0.0:8000
    build: .
    volumes:
      - ./:/usr/src/web/
    ports:
      - "80-83:8000"
    env_file:
      - config/.env
    depends_on:
      - db
    restart: always

  static-file-server:
    restart: always
    image: halverneus/static-file-server:latest
    environment:
      - SHOW_LISTING=false
      - DEBUG=false
    volumes:
      - ./static/:/web
    ports:
      - 3000-3003:8080
  db:
    restart: always
    image: postgres:12.0-alpine
    volumes:
      - postgres_data:/var/lib/postgresql/data/
    env_file:
      - config/.env

volumes:
  postgres_data:
    name: docker_database
    external: true

Мой файл docker yml приведен выше. У меня есть сервер, чтобы люди могли скачивать изображения. Но будет очень много запросов на скачивание изображений. Я хочу масштабировать мой веб-сервер до 3 или более. Я могу добавить новые порты для масштабирования, но нет распределения по процессорам. По-прежнему увеличивается значение только одного процессора, и оно достигает 150%. Статистика docker для web_server выглядит следующим образом. Как я могу распределить нагрузку на другие процессоры

CONTAINER ID   NAME                          CPU %     MEM USAGE / LIMIT     MEM %     NET I/O          BLOCK I/O         PIDS
9238c8f86a2f   server_web_1                  137.75%   2.94GiB / 7.714GiB    38.32%     799kB / 193kB    94.3MB / 8.19kB   41
d24e07a1eb55   server_web_2                  2.96%     128.8MiB / 7.714GiB   1.63%     115kB / 28.9kB   582kB / 0B        17
1e00778f5d71   server_web_3                  2.95%     291.1MiB / 7.714GiB   3.68%     352MB / 7.93GB   34.8MB / 0B       17
Вернуться на верх