我正在使用Docker来运行一些容器化应用。我有兴趣衡量它们消耗的资源(CPU和内存使用方面)。
有没有办法测量Docker容器消耗的资源,例如RAM和CPU使用情况?
谢谢。
我正在使用Docker来运行一些容器化应用。我有兴趣衡量它们消耗的资源(CPU和内存使用方面)。
有没有办法测量Docker容器消耗的资源,例如RAM和CPU使用情况?
谢谢。
docker stats
命令获取此信息,例如:$ 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
更新:请参考@Adrian Mouat的答案,因为docker现在支持docker stats
!
目前版本的docker中没有内置这样的功能。未来版本将通过api或插件支持此功能。
看起来有一个lxc项目,你应该能够使用它来跟踪CPU和内存。
docker stats
来完成此操作。我已经添加了一个答案,但是您可能也想更新这个答案,因为它是被接受的。 - Adrian Mouat此外,您可以直接从cgroups读取资源指标。查看以下示例(我正在运行Debian Jessie
和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
system.slice
的子文件夹 - 它改变了名称吗?现在,在这个级别上有一个名为docker
的子文件夹... - halferDocker容器的内存使用情况
docker system df -v
本地Docker空间
df -kh
docker ps | awk '{print $1}' | grep -v CONTAINER
中的每一行,运行以下命令:docker ps | grep $line | awk '{printf $NF" "}' && echo $((cat /sys/fs/cgroup/memory/docker/$line*/memory.usage_in_bytes
/ 1024 / 1024 ))MB; - staticx