当前位置: 首页 > news >正文

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 能更合理地做出决策。

相关文章:

  • C++ 学习指南
  • Redis 处理读请求
  • 安全文件共享实际上是什么样的呢?
  • 解决找不到字体的问题
  • windows搭建xwiki17服务器
  • [Java · 铢积寸累] 数据结构 — 数组类型 - Arrays 工具类详解
  • 稳定PCDN运营效率
  • 【leetcode100】零钱兑换Ⅱ
  • 物联网赋能玻璃制造业:实现设备智能管理与生产协同
  • Ubuntu 上安装 Conda
  • 安装 Conda 环境
  • csv数据的写入
  • SharpMap与TerraLib:C#与C++开源GIS库
  • 蓝桥杯算法实战分享:C/C++ 题型解析与实战技巧
  • 【“星睿O6”AI PC开发套件评测】GPU矩阵指令算力,GPU带宽和NPU算力测试
  • npm i 出现permission denied
  • AtCoder 第402场初级竞赛 A~E题解
  • JavaScript 渲染内容爬取实践:Puppeteer 进阶技巧
  • Socket
  • 【STL】unordered_map
  • “五一”假期第四天,全社会跨区域人员流动量预计超2.7亿人次
  • 长三角铁路今日预计发送旅客398万人次,客流持续保持高位运行
  • 网红“丢那猩”丢石块闯祸,起哄游客难逃责任
  • 党旗下的青春|赵天益:少年确定志向,把最好的时光奉献给戏剧事业
  • 讲武谈兵|朝鲜“崔贤”号驱逐舰下水,朝版“宙斯盾”战力如何?
  • 八成盈利,2024年沪市主板公司实现净利润4.35万亿元