java - 由 JVM 或 Docker 容器衡量的 RAM 使用率差异
问题描述
我们在 Kubernetes 上的 Docker 容器中运行了一个 java 应用程序。我们以两种不同的方式测量 RAM 使用情况,一种是根据 JVM 报告的指标,另一种是根据 Container Advisor (cadvisor)。我们在 Prometheus 中导入所有指标,我在这里发布了一些图表,所有这些图表都引用了同一个 Pod 和 Container。前五张图是 JVM 报告的使用情况,最后一张是 cAdvisor 报告的使用情况。
我的问题是:
- cAdvisor 和 JVM 报告的图表形式为何如此不同?
- cAdvisor 总是报告比 JVM 更多的 RAM 使用情况,特别是在 container_memory_working_set_bytes 和 sum_jvm_memory_committed 之间,差异稳定在 300Mb 左右。可能的解释是什么?
解决方案
推荐阅读
- javascript - 浏览器在 onchange 之前听到 onclick
- javascript - Socket.IO双火
- c# - C# Asp.Net HTTP 请求
- javascript - 取消所有当前正在运行的 RequestAnimationFrames
- django - Bcrypt Python3 Django:获取无效的盐错误
- python - 循环遍历字典键的元素而不是枚举所有
- vim - 将文件中的所有字符串替换为“SomeWord-####”为“SomeOtherWord-ABC”
- node.js - 在 express 中签署 cookie
- python - 读取 CSV 文件并使用 pandas 编写函数
- javascript - 谷歌地图参考错误:谷歌未定义 - jQuery Mobile