Eu tenho um processo em execução em um contêiner do Docker no Linux, com um limite de memória de 2 GB. (O contêiner é iniciado com docker run --memory=2g
.)
Aqui está o que o top
diz sobre isso depois de estar funcionando há algum tempo.
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
9016 root 20 0 7342132 4.652g 4.224g S 100.0 7.4 18828:28 blah
Aqui está a saída de docker stats
:
CONTAINER CPU % MEM USAGE/LIMIT MEM % NET I/O
d7032e5928b6 100.02% 2.076 GB/2.147 GB 96.68% 345 MB/199.1 MB
Depois de reiniciá-lo, top
:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
5653 root 20 0 2787800 1.328g 1.030g S 100.0 2.1 0:37.57 blah
docker stats
:
CONTAINER CPU % MEM USAGE/LIMIT MEM % NET I/O
10cefdce241f 99.97% 320.4 MB/2.147 GB 14.92% 36.34 kB/22.48 kB
Então, isso corresponde (muito aproximadamente) a RES
- SHR
, o que faz algum sentido para mim - mas o cálculo equivalente para a saída do contêiner de longa duração não corresponde da mesma maneira.
O que exatamente o Docker está contando aqui? Posso combinar de alguma forma com a saída de top
ou alguma outra ferramenta?
Tags memory-usage docker top