2013-09-23 41 views
19

我正在使用Docker来运行一些容器化的应用程序。我有兴趣测量它们消耗的资源量(就CPU和内存使用情况而言)。Docker容器的内存使用情况

是否有任何方法来测量Docker容器所消耗的资源,如RAM & CPU使用率?

谢谢。

+0

在'搬运工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

回答

7

更新:请参阅下面的@Adrian Mouat的答案作为码头工人现在支持docker stats

没有办法做到这一点,在当前版本的Docker中内置。未来的版本将通过api或插件支持这一点。

它看起来像有一个LXC项目,你应该能够用它来追踪CPU和内存。

+1

您现在可以使用'docker stats'完成此操作。我已经添加了一个答案,但是您可能想要更新这个答案以及它已被接受。 –

3

此外,您还可以直接从cgroup的阅读资源指标。 参见下面的例子(我在Debian Jessiedocker 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

我在Ubuntu上,几年后,我没有一个名为'system.slice'的子文件夹 - 是否更改了名称?现在有一个在这个级别的“docker”子文件夹... – halfer

14

您可以从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