我正在使用 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 和内存。
此外,您可以直接从 cgroups 读取资源指标。请参见下面的示例(我正在运行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