k8s 中 cpu 核数的理解

物理核还是逻辑核

在 Kubernetes(k8s)编排文件(如 Pod 或 Deployment 的 YAML 文件)中设置的 CPU 核数,针对的是逻辑核数(Logical Cores),而非物理核数(Physical Cores)

这种抽象设计是为了屏蔽底层硬件差异,避免因硬件差异(如高频 3GHz 核 vs 低频 2GHz 核)导致调度偏差,确保资源配额在不同节点上是一致的。比如:requests.cpu: "1000m" 的 Pod,在 3GHz 和 2GHz 节点上均获得"相当于 1 个标准核"的算力承诺。

算力稀释

在开启超线程的物理核上,2 个逻辑核共享 1 个物理核的资源(如缓存、执行单元)。

因此 1000m 的 cpu,可能只用到了 ​​半个物理核的资源​​。

性能影响与配置建议

  • 高频 CPU 的"吃亏"

    3GHz 物理核的 1000m 实际算力 > 2GHz 物理核的 1000m,但 Kubernetes 视作等同。若无显式调度策略干预,Kubernetes 不会自动将 1000m 优先分配到高频 CPU 节点。

    建议:敏感业务通过节点亲和性 nodeAffinity 绑定高频节点。

  • 超线程的资源争用

    若同一物理核上的两个逻辑核均满载,实际性能可能低于预期。

    建议:

    • 对 IO 密集型服务:禁用超线程 + cpuManagerPolicy: static 绑定物理核
    • 对 计算密集型服务:启用超线程 + 适当提高 limits.cpu(如 1500m)补偿争用损耗
相关推荐
张忠琳3 小时前
【NPU】Ascend Docker Runtime v26.0.1 之二 runtime/process/process.go — 超深度逐行分析
云原生·容器·架构·kubernetes·npu·docker-runtime
Kevin Wang7277 小时前
Nvidia-AGX-spark部署手册——课堂质量诊断(jetpack:r36)
python·docker·容器
回眸不遇9 小时前
将 Docker虚拟磁盘文件ext.vhdx迁移出C盘 ,更换到D盘
c语言·docker·容器
雨辰AI10 小时前
K8s人大金仓主从高可用搭建|容器化集群自动同步+故障切换(生产完整版)
云原生·容器·kubernetes
潘正翔11 小时前
k8s基础_kubeadm搭建k8s集群
linux·运维·docker·云原生·容器·kubernetes
Echo flower11 小时前
Docker 容器中 Puppeteer 僵尸进程排查与修复
运维·docker·容器·puppeteer
潘正翔12 小时前
k8s进阶_Harbor镜像仓库
git·云原生·容器·kubernetes·gitee·github
江湖有缘12 小时前
Docker实战 | 使用Docker部署Donetick任务与家务管理应用
运维·docker·容器
乐启国际旅行社有限公司12 小时前
微服务高可用实战:Resilience4j熔断降级解决文旅节假日流量雪崩问题
微服务·云原生·架构
键盘鼓手苏苏13 小时前
AI 音频生成流水线:异步任务要有进度和取消
云原生·kubernetes·k8