docker stats命令和docker rest api内存统计数据不一致
当使用docker stats命令查看正在运行的容器时,我可以看到容器的内存使用量是202.3MiB。 但是,当通过RESTAPI查看同一容器时 GET/containers/container\u name/stats->memory\u stats->usage,那里的用法显示242.10 MiB 这些值之间有很大的差异。docker stats命令和docker rest api内存统计数据不一致,docker,ram,Docker,Ram,当使用docker stats命令查看正在运行的容器时,我可以看到容器的内存使用量是202.3MiB。 但是,当通过RESTAPI查看同一容器时 GET/containers/container\u name/stats->memory\u stats->usage,那里的用法显示242.10 MiB 这些值之间有很大的差异。 造成这种差异的原因可能是什么?我知道docker客户端使用RESTAPI获取其统计数据,但我在这里遗漏了什么?解决了我的问题。最初,我在计算内存使用率时没有考虑缓存内存
造成这种差异的原因可能是什么?我知道docker客户端使用RESTAPI获取其统计数据,但我在这里遗漏了什么?解决了我的问题。最初,我在计算内存使用率时没有考虑缓存内存 Say“stats”是从 获取/containers/container\u name/stats 正确的公式是:
memory_usage = stats["memory_stats"]["usage"] - stats["memory_stats"]["stats"]["cache"]
limit = stats["memory_stats"]["limit"]
memory_utilization = memory_usage/limit * 100
使用rss值,即(rss=usage-cache) 在Linux上,Docker CLI通过从总内存使用量中减去页面缓存使用量来报告内存使用量
API不执行这样的计算,而是提供总内存使用量和页面缓存中的数据量,以便客户端可以根据需要使用数据。()您能在两种方法中都仔细检查一下容器id吗?仔细检查一下。我正在运行一个容器来测试这个问题。在尝试了同样的方法之后,我得到了两种方法之间非常不同的结果。一个给我52.21%,另一个给91.55%
"memory_stats": {
"stats": {
"cache": 477356032,
"rss": 345579520,
},
"usage": 822935552
}