Масштабирование веб-сервера 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