Docker 容器的内存使用情况

问题描述 投票:0回答:5

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

有什么方法可以测量 Docker 容器消耗的资源,例如 RAM 和 CPU 使用情况?

谢谢你。

memory resources cpu-usage measurement docker
5个回答
104
投票

您可以从

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

16
投票

更新:请参阅下面@Adrian Mouat 的回答,因为 docker 现在支持

docker stats

当前版本的 docker 中还没有内置的方法可以做到这一点。未来版本将通过 api 或插件支持此功能。

看起来确实有一个 lxc 项目,您应该能够使用它来跟踪 CPU 和内存。


5
投票

此外,您还可以直接从 cgroup 读取资源指标。 请参阅下面的示例(我正在

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

3
投票

请查看以下命令以获取 docker 容器的 CPU 和内存使用情况:-

docker status container_ID
#查看单个容器资源

for i in $(docker ps -q); do docker stats $i --no-trunc --no-stream  ; echo "--------";done
#检查/列出所有容器资源

docker stats --all
#实时查看所有容器资源

docker system df -v
#查看存储相关信息


0
投票

这是我使用的命令:

 docker stats CONTAINER_ID --no-stream --format "{{.Container}}: {{.MemUsage}}"

将 CONTAINER_ID 替换为使用以下命令找到的容器 ID:

docker container ps
© www.soinside.com 2019 - 2024. All rights reserved.