Docker совет №7: Измеряйте ресурсы, используемые контейнерами
Nov 16, 2017 10:37 · 595 words · 3 minute read
В docker’е существует встроенная команда, позволяющая увидеть сколько CPU, памяти, сетевых операций ввода-вывода (network I/O) и блочных операций ввода-вывода (block I/O) используют запущенные контейнеры. Давайте разберемся!
Знать, сколько ресурсов используется тем или иным docker-контейнером очень полезно. Вооружившись этими знаниями, можно планировать апгрейд существующих и разворачивать дополнительные docker-хосты, соответствующие используемым ресурсам. В перспективе это знание позволяет сэкономить серьезные деньги на инфраструктуре.
Все, что вам нужно сделать, — запустить команду docker stats
на docker-хосте. Вывод команды будет примерно следующим:
CONTAINER CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
1fbfd146c892 0.00% 7.562MiB / 15.57GiB 0.05% 58MB / 84.4MB 831kB / 0B 4
3e18760df407 0.03% 21.7MiB / 15.57GiB 0.14% 43.4MB / 56MB 17.5MB / 29.4MB 21
059c84d3606b 0.00% 7.52MiB / 15.57GiB 0.05% 87.7MB / 145MB 9.38MB / 0B 22
c7cff2a01c4b 3.00% 12.3MiB / 15.57GiB 0.08% 10GB / 4.71GB 340kB / 0B 20
d696ab70fe4b 0.00% 12.09MiB / 15.57GiB 0.08% 9.48GB / 4.41GB 532kB / 0B 20
54f2f9e5fb82 0.00% 17.88MiB / 15.57GiB 0.11% 96.8MB / 2.02GB 2.4MB / 0B 18
6f1b0479d00b 0.00% 13.32MiB / 15.57GiB 0.08% 38.6MB / 83.9MB 856kB / 0B 12
7e4e93b694fb 0.00% 8.777MiB / 15.57GiB 0.06% 162MB / 168MB 434kB / 0B 19
9b1d756a0b1e 0.00% 15.45MiB / 15.57GiB 0.10% 37.7MB / 83.4MB 1.78MB / 98.3kB 12
29d0cac48303 0.00% 15.27MiB / 15.57GiB 0.10% 39.2MB / 83.8MB 410kB / 3.07MB 12
124fae38e06c 0.00% 5.617MiB / 15.57GiB 0.04% 68.7MB / 99.9MB 1.07MB / 0B 4
809143ebbd38 0.00% 9.441MiB / 15.57GiB 0.06% 158MB / 165MB 651kB / 0B 19
2158ae2f51ab 2.25% 453.3MiB / 15.57GiB 2.84% 842MB / 64.5MB 1.3GB / 41.4GB 22
aaa9c93137b2 0.00% 10.22MiB / 15.57GiB 0.06% 343MB / 156MB 4.3MB / 0B 19
e917f287bb0c 0.00% 10.77MiB / 15.57GiB 0.07% 198MB / 91.7MB 7.13MB / 3.13MB 21
62f86fb57627 2.22% 54.01MiB / 15.57GiB 0.34% 55.8MB / 1.16GB 211MB / 1.43MB 24
a173fb7cacda 0.00% 15.04MiB / 15.57GiB 0.09% 49.5MB / 110MB 1.44MB / 0B 5
256c8d25e9f9 0.09% 1.598MiB / 15.57GiB 0.01% 12.8GB / 13.2GB 4.49MB / 0B 2
304cd30dbc10 15.82% 3.824GiB / 15.57GiB 24.56% 49.2GB / 14.4GB 12.6GB / 9.64GB 170
74a23eb1bdf0 1.18% 3.083GiB / 15.57GiB 19.80% 170GB / 56.4GB 111GB / 106GB 210
9a14993f1238 6.52% 1.123GiB / 15.57GiB 7.21% 66.9GB / 213GB 69.1GB / 679GB 127
При желании, вывод данной статистики можно сузить, добавив в него один или несколько ID контейнеров в качестве параметров для команды. Например, так docker stats 304cd30dbc10 74a23eb1bdf0
:
CONTAINER CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
304cd30dbc10 0.98% 3.824GiB / 15.57GiB 24.56% 49.2GB / 14.4GB 12.6GB / 9.64GB 163
74a23eb1bdf0 0.19% 3.083GiB / 15.57GiB 19.80% 170GB / 56.4GB 111GB / 106GB 210
Также можно использовать флаг --format
, чтобы выводить только интересующие столбцы информации. Например, для вывода статистики использования CPU и памяти используйте:
docker stats --format "table {{.Container}}\t{{.CPUPerc}}\t{{.MemUsage}}"
CONTAINER CPU % MEM USAGE / LIMIT
1fbfd146c892 0.00% 7.562MiB / 15.57GiB
3e18760df407 0.04% 21.71MiB / 15.57GiB
059c84d3606b 0.00% 7.535MiB / 15.57GiB
c7cff2a01c4b 0.00% 12.79MiB / 15.57GiB
d696ab70fe4b 0.00% 11.76MiB / 15.57GiB
54f2f9e5fb82 0.00% 17.88MiB / 15.57GiB
6f1b0479d00b 0.00% 13.29MiB / 15.57GiB
7e4e93b694fb 0.00% 9.535MiB / 15.57GiB
9b1d756a0b1e 0.00% 15.46MiB / 15.57GiB
29d0cac48303 0.06% 15.27MiB / 15.57GiB
124fae38e06c 0.00% 5.617MiB / 15.57GiB
809143ebbd38 0.00% 9.441MiB / 15.57GiB
2158ae2f51ab 3.55% 445.8MiB / 15.57GiB
aaa9c93137b2 0.00% 10.22MiB / 15.57GiB
e917f287bb0c 0.06% 10.73MiB / 15.57GiB
62f86fb57627 2.53% 54.98MiB / 15.57GiB
a173fb7cacda 0.00% 15.04MiB / 15.57GiB
256c8d25e9f9 0.00% 1.598MiB / 15.57GiB
304cd30dbc10 0.16% 3.836GiB / 15.57GiB
74a23eb1bdf0 0.24% 3.083GiB / 15.57GiB
9a14993f1238 0.08% 1.123GiB / 15.57GiB
Или комбинируйте эти команды:
docker stats --format "table {{.Container}}\t{{.CPUPerc}}\t{{.MemUsage}}" 304cd30dbc10 74a23eb1bdf0
CONTAINER CPU % MEM USAGE / LIMIT
304cd30dbc10 2.52% 3.836GiB / 15.57GiB
74a23eb1bdf0 7.79% 3.152GiB / 15.57GiB