Memory usage of Docker containers

2019-03-23 03:48发布

问题:

I am using Docker to run some containerized apps. I am interested in measuring how much resources they consume (as far as regarding CPU and Memory usage).

Is there any way to measure the resources consumed by Docker containers like RAM & CPU usage?

Thank you.

回答1:

Update: See @Adrian Mouat's answer below as docker now supports docker stats!

There isn't a way to do this that's built into docker in the current version. Future versions will support this via an api or plugin.

  • https://github.com/dotcloud/docker/issues/36

It does look like there's an lxc project that you should be able to use to track CPU and Memory.

  • https://github.com/Soulou/acadock-live-lxc


回答2:

You can get this from docker stats e.g:

$ 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


回答3:

Also, you can read resource metrics directly from cgroups. See example below (I am running on Debian Jessie and 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