Docker Stats vs Linux ps vs Фактическая загрузка ЦП - PullRequest
0 голосов
/ 16 мая 2019

Я хотел проверить загрузку процессора док-контейнера.Моя конфигурация сервера выглядит следующим образом:

Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                4
On-line CPU(s) list:   0-3
Thread(s) per core:    2
Core(s) per socket:    2
Socket(s):             1
NUMA node(s):          1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 85
Model name:            Intel(R) Xeon(R) Platinum 8175M CPU @ 2.50GHz
Stepping:              4
CPU MHz:               2500.000
BogoMIPS:              5000.00
Hypervisor vendor:     KVM
Virtualization type:   full
L1d cache:             32K
L1i cache:             32K
L2 cache:              1024K
L3 cache:              33792K
NUMA node0 CPU(s):     0-3

Я использовал команду docker stats, она показывает 14,39% загрузки ЦП.

CONTAINER ID        NAME                                                                           CPU %               MEM USAGE / LIMIT   MEM %               NET I/O             BLOCK I/O           PIDS
4a0da79c0648        k8s_test-test-6b9c748fff-bcch5_default_2d80f075-6d77-11e9-b2a1-0267bc34ef6c_3   14.39%              130MiB / 15.06GiB   0.80%               0B / 0B             321MB / 16.4kB      10

Затем я узнал PID контейнера, используя следующую команду:

docker inspect 4a0da79c0648 --format '{{.State.Pid}}, {{.ID}}'

, а затем команда Linux, чтобы найти использование процессора.

while sleep 1; do ps --no-headers -o '%cpu,%mem' -p 14188; done

выходные данные выглядят следующим образом:

Cpu   Mem
14.7  0.7
14.7  0.7
14.7  0.7

оба значения процента использования ЦП различны.Кроме того, как это по сравнению с моей 4-х процессорной машиной, означает ли это 14% использования 680 milicpu?это для 1 процессора 14% или 4 процессора 14%?

1 Ответ

2 голосов
/ 16 мая 2019

14% - это использование 14% одного ядра, что равно 140 милликоров. Все инструменты Linux показывают использование процессора, связанное с одним ядром. Так что, если ваше приложение использует два ядра - тогда оно использует 200% процессора. Также определение «одно ядро» может отличаться в зависимости от того, включена ли у вас технология Hyper Threading или нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...