Я пытаюсь установить жесткие пределы процессора и памяти в Docker Swarm, состоящем из трех виртуальных машин.Я использую конфигурации процессора и ограничения памяти, предложенные докерской документацией в моем docker-compose.yml
файле.Мой docker-compose.yml
файл выглядит так:
version: "3"
services:
app:
# replace username/repo:tag with your name and image details
image: user/testing:part2
deploy:
replicas: 10
resources:
limits:
cpus: "0.5"
memory: 4M
restart_policy:
condition: on-failure
Процессор и ресурсы памяти моего хост-компьютера и виртуальных машин показаны на рисунке ниже.Мой хост-компьютер имеет 4
ЦП, а все виртуальные машины имеют 1
ЦП каждая.
Чтобы выяснить, могут ли контейнеры Docker ограничивать свои ресурсыЯ запускаю тестовую программу с infinite loop
в моем рое.Один из снимков из моих экспериментов показан ниже.Он показывает docker stats
результаты на трех виртуальных машинах (VM1: внизу слева, VM2: вверху справа, VM3: внизу справа).
Просмотррезультаты, у меня есть несколько вопросов.
- Как процессор ограничен
50%
для каждого контейнера? - Каждая виртуальная машина имеет
1
ЦП, тогда как на одной виртуальной машине,% загрузки ЦП док-контейнеров превышает 100%
? - На изображении выше у меня запущено
7
док-контейнеров исумма CPU% для всех них составляет 22+21+88+52+66+78+76 = 403
ок.это означает, что рой использует 4
ядер вместо 3
.Возможно ли, чтобы докер позволял рою использовать ресурсы ЦП хост-машины, если это необходимо?
Кто-нибудь может ответить на эти вопросы?Спасибо.