我在尝试分析在 docker 容器与主机上运行的 Java 应用程序中的内存消耗时遇到了一个有趣的问题。
在主机上,我使用 Yourkit 工具来分析内存消耗。
对于 docker 容器 docker stats <docker id/name>
我得到的是,在 MAC yourkit 上显示了 50M 非堆大小 + ~40M 堆大小,总共 ~ 100M
然而,当我在容器上部署和运行相同的战争时,统计数据显示为200M
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
879fb113ca8d jetty-app 0.19% 214.6MiB / 1.952GiB 10.74% 1.49MB / 88.9kB 31.7MB / 6.42MB 29
Run Code Online (Sandbox Code Playgroud)
任何人都可以对这种现象有所了解吗?
假设stats提供了错误的结果,我尝试使用--memory …