2013-09-23 26 views
19

Używam Dockera do uruchamiania niektórych kontenerowych aplikacji. Interesuje mnie pomiar zużytych zasobów (w zakresie wykorzystania procesora i pamięci).Wykorzystanie pamięci w kontenerach Docker

Czy istnieje sposób mierzenia zasobów zużywanych przez pojemniki Docker, takie jak użycie pamięci RAM w postaci pamięci RAM: &?

Dziękuję.

+0

dla linii 'Döcker ps | awk "{print $ 1}" grep -v CONTAINER'; do dokowania ps | grep $ linia | awk '{printf $ NF ""}' && echo $ (('cat/sys/fs/cgroup/memory/docker/$ line */memory.usage_in_bytes'/1024/1024)) MB; zrobione – staticx

Odpowiedz

7

Aktualizacja: Patrz odpowiedź @Adrian Mouat poniżej, jako że doker obsługuje teraz docker stats!

Nie ma sposobu, aby to zrobić, wbudowanego w docker w aktualnej wersji. Przyszłe wersje będą obsługiwały to poprzez api lub wtyczkę.

To wygląda jak tam projekt lxc, że powinieneś być w stanie wykorzystać do śledzenia CPU i pamięci.

+1

Możesz zrobić to teraz z 'statystyką dockera'. Dodałem odpowiedź, ale możesz ją zaktualizować, a także zaakceptować. –

3

Ponadto, można odczytać dane zasobu bezpośrednio z cgroups. Zobacz przykład poniżej (używam na Debian Jessie i docker 1.2)

> docker ps -q 
afa03c363af5 
> ls /sys/fs/cgroup/memory/system.slice/ | grep docker-afa03c363af5 
docker-afa03c363af54815d721d938e01fe4cb2debc4f6c15ebff1851e20f6cde3ae0e.scope 
> cd docker-afa03c363af54815d721d938e01fe4cb2debc4f6c15ebff1851e20f6cde3ae0e.scope 
> cat memory.usage_in_bytes 
4358144 
> cat memory.limit_in_bytes 
1073741824 
+0

Jestem na Ubuntu, kilka lat po tym, i nie mam podfolderu o nazwie "system.slice" - czy zmienił nazwę? Na tym poziomie znajduje się teraz podfolder 'docker' ... – halfer

14

Formularz ten można uzyskać od docker stats np:

$ docker stats --no-stream 
CONTAINER   CPU %    MEM USAGE/LIMIT MEM %    NET I/O    BLOCK I/O    PIDS 
6b5c0fcfa7d4  0.13%    2.203 MiB/4 MiB 55.08%    5.223 kB/648 B 102.4 kB/876.5 kB 3 
Powiązane problemy