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

为什么kubectl top命令查看节点内存使用超过100%?

问题现象

从界面上看节点内存使用率并不是很高,但使用kubelet top node查看节点内存使用率已超过100%。

NAME            CPU(cores)   CPU%   MEMORY(bytes)   MEMORY%
192.168.0.243   79m          4%     2357Mi          109%
问题根因

出现该问题的原因是kubectl top node是调用kubelet的metrics API来获取数据的,因此看到的是节点上已使用的资源总和除以可分配的所有资源。

社区issue链接:kubectl shows node memory >100%? · Issue #86499 · kubernetes/kubernetes · GitHub。

场景示例

例如,某节点的参数可通过kubectl describe node命令查询,示例如下:

...
Capacity:cpu:                2ephemeral-storage:  51286496Kihugepages-1Gi:      0hugepages-2Mi:      0localssd:           0localvolume:        0memory:             3494556Kipods:               40
Allocatable:cpu:                1960mephemeral-storage:  47265634636hugepages-1Gi:      0hugepages-2Mi:      0localssd:           0localvolume:        0memory:             2213604Kipods:               40
...
  • 节点内存总量:即Capacity.memory字段,为4030180Ki。
  • 节点可分配量:即Allocatable.memory字段,为2213604Ki
  • 节点已使用量:可通过以下命令获取,本示例中为2413824Ki。
    kubectl get --raw /apis/metrics.k8s.io/v1beta1/nodes/

    回显如下:

    {"kind": "NodeMetricsList","apiVersion": "metrics.k8s.io/v1beta1","metadata": {},"items": [{..."timestamp": "2023-08-15T14:09:38Z","window": "1m0.177s","usage": {"cpu": "78528126n","memory": "2413824Ki"}}]
    }
  • 则使用kubelet top node查看节点内存使用率:

节点内存使用率 = 节点已使用量 / 节点可分配 = 2413824Ki / 2213604Ki = 109%

  • 实际节点内存使用率:

实际节点内存利用率 = 节点已使用量 / 节点内存总量 = 2413824Ki / 4030180Ki = 59.9%

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Wophp靶场寻找漏洞练习
  • 容器镜像同步工具image-migrator
  • 海量数据查找最大K个值:数据结构与算法的选择
  • 快速切换淘宝最新镜像源npm
  • 【聊聊AI编程必不可少的NLTK及其punkt、punkt_tab安装】
  • 设计模式 -- 单例设计模式
  • Linux - 探秘/proc/sys/net/ipv4/ip_local_port_range
  • 嵌入式Linux电池管理(TODO)
  • 【SpringCloud】微服务架构演进与Spring Cloud简介
  • EasyExcel 动态表头+表头合并
  • C语言基础——⑩③数据结构——②栈和队列
  • (不用互三)AI绘画工具应该如何选择
  • C语言 | Leetcode C语言题解之第394题字符串解码
  • Spring Framework 学习总结博客
  • 快速入门编写一个Java程序
  • 【前端学习】-粗谈选择器
  • Angular js 常用指令ng-if、ng-class、ng-option、ng-value、ng-click是如何使用的?
  • C学习-枚举(九)
  • Docker 笔记(2):Dockerfile
  • Laravel Mix运行时关于es2015报错解决方案
  • Lsb图片隐写
  • Nacos系列:Nacos的Java SDK使用
  • Spark RDD学习: aggregate函数
  • Twitter赢在开放,三年创造奇迹
  • Vim 折腾记
  • 缓存与缓冲
  • 前端路由实现-history
  • 小程序 setData 学问多
  • 1.Ext JS 建立web开发工程
  • gunicorn工作原理
  • 阿里云移动端播放器高级功能介绍
  • 数据可视化之下发图实践
  • ​io --- 处理流的核心工具​
  • # Swust 12th acm 邀请赛# [ E ] 01 String [题解]
  • #android不同版本废弃api,新api。
  • (20)docke容器
  • (3)选择元素——(17)练习(Exercises)
  • (8)Linux使用C语言读取proc/stat等cpu使用数据
  • (9)YOLO-Pose:使用对象关键点相似性损失增强多人姿态估计的增强版YOLO
  • (企业 / 公司项目)前端使用pingyin-pro将汉字转成拼音
  • (数据大屏)(Hadoop)基于SSM框架的学院校友管理系统的设计与实现+文档
  • (五) 一起学 Unix 环境高级编程 (APUE) 之 进程环境
  • (小白学Java)Java简介和基本配置
  • (已解决)Bootstrap精美弹出框模态框modal,实现js向modal传递数据
  • (转)Sublime Text3配置Lua运行环境
  • ***测试-HTTP方法
  • .net core 客户端缓存、服务器端响应缓存、服务器内存缓存
  • .net framework 4.0中如何 输出 form 的name属性。
  • .net 使用ajax控件后如何调用前端脚本
  • .NetCore+vue3上传图片 Multipart body length limit 16384 exceeded.
  • .NET简谈设计模式之(单件模式)
  • @RestControllerAdvice异常统一处理类失效原因
  • [ SNOI 2013 ] Quare
  • [000-01-011].第2节:持久层方案的对比
  • [C#]winform使用引导APSF和梯度自适应卷积增强夜间雾图像的可见性算法实现夜间雾霾图像的可见度增强