docker stats命令与docker rest api内存统计信息之间的不一致

Roy*_*hen 4 ram docker

当使用docker stats命令查看正在运行的容器时,我可以看到容器的内存使用率为202.3MiB。但是,当通过REST API使用GET / containers / container_name / stats-> memory_stats-> usage查看同一容器时,那里的使用情况显示为242.10 MiB。

这些值之间存在很大差异。造成差异的原因可能是什么?我知道docker客户端使用REST API来获取其统计信息,但是我在这里缺少什么呢?

Roy*_*hen 5

解决了我的问题。最初,在计算内存使用量时,我没有考虑缓存内存。

说“ stats”是GET / containers / container_name / stats返回的json,

正确的公式是:

memory_usage = stats["memory_stats"]["usage"] - stats["memory_stats"]["stats"]["cache"]

limit = memory_usage = stats["memory_stats"]["limit"]

memory_utilization = memory_usage/limit * 100
Run Code Online (Sandbox Code Playgroud)