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