Question

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.

Was it helpful?

Solution 2

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.

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

OTHER TIPS

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

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
  • Memory usage of docker containers

    docker system df -v

  • local docker space

    df -kh

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top