container_memory_working_set_bytes` 与 `container_memory_usage_bytes` 的区别

在 Prometheus 中,container_memory_working_set_bytescontainer_memory_usage_bytes 的区别如下:

  • 计算方式及包含内容

    • container_memory_usage_bytes :表示容器当前使用的总内存,包括所有内存,不管这些内存是否最近被访问过,也不管其是否可以被操作系统回收,即它包含了缓存、工作集等所有内存部分。
    • container_memory_working_set_bytes :是容器的当前工作集内存,计算方式为 memory.usage_in_bytes - total_inactive_file,其中 total_inactive_file 表示可回收的文件系统缓存部分。简而言之,它是容器实际在用且操作系统不能回收的那部分内存,不包含可被系统回收的缓存。
  • 数值大小 :由于 container_memory_usage_bytes 包含了更多的内存部分,其数值通常大于或等于 container_memory_working_set_bytes

  • 应用场景及与 OOM Killer 的关系

    • container_memory_usage_bytes :适用于需要了解容器整体内存分配情况的场景,比如在分析容器的内存分配趋势、进行内存容量规划等时比较有用。但如果仅从这个指标来监控内存使用情况,可能会因为其包含缓存等因素,而不能准确反映容器对内存的实际压力状况。
    • container_memory_working_set_bytes :更贴近容器实际的内存使用压力情况,是 Kubernetes 中 OOM Killer 监控的关键指标。因为 OOM Killer 主要关注的是那些不可回收的、容器实际在用的内存,当容器的 container_memory_working_set_bytes 达到内存限制时,可能会触发 OOM Killer 杀死该容器,以保证系统的整体稳定性。

通常情况下,container_memory_working_set_bytes 更适合用于评估容器的内存使用率,因为它能更准确地反映容器对内存的实际需求和压力,避免因缓存等因素导致的误判。例如,在监控容器内存使用率以进行水平扩展或资源分配时,使用 container_memory_working_set_bytes 能更合理地做出决策。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值