当前位置: 首页 > 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
  • “沉默”的智驾:余承东不喊“遥遥领先”,何小鹏连夜改口 | 电厂
  • “75后”遂宁市长刘会英调任四川省人社厅党组副书记
  • 临清农商行回应监管处罚:系2023年问题,已经进行了整改
  • 沃尔沃中国公开赛夺冠,这是吴阿顺与上海的十年之约
  • 美关税政策冲击本土车企:福特7月涨价,通用汽车盈利预期下调
  • 世遗X时尚,七匹狼这场大秀秀出中国文化独特魅力