开发者社区 > 云原生 > 容器服务 > 正文

k8s如何处理相同QoS等级的容器呢?

已解决

k8s如何处理相同QoS等级的容器呢?

展开
收起
詹姆斯邦德00 2022-10-14 17:11:14 717 0
1 条回答
写回答
取消 提交回答
  • 推荐回答

    image.png

    每个运行中的进程都有一个称为OutOfMemory(OOM)分数的值。系统通过比较所有运行进程的OOM分数来选择要杀掉的进程。

    当需要释放内存时,分数最高的进程将被杀死。 OOM分数由两个参数计算得出:进程已消耗内存占可用内存的百分比,与一个基于pod QoS等级和容器内存申请量固定的OOM分数调节因子。对于两个属于Burstable等级的单容器的pod,系统会杀掉内存实际使用量占内存申请量比例更高的pod。这就是上图中使用了内存申请量90% 的pod B在pod C(只使用了70%)之前被杀掉的原因,尽管pod C比pod B使用了更多兆字节的内存。

    这说明我们不仅要注意requets和limits之间的关系,还要留心requests和预期实消耗内存之间的关系。

    既然上面已经提到了相关的request和limits,及时节点上所有的pod都设置了limits,也建议一个节点上的limits不要超卖太多,以防大部分pod在同一时间承受高业务流量,造成节点上的资源被打满,或者把业务高峰期的pod错开放置在不同节点上,以实现资源利用最大化同时,不影响节点上的其他应用,这个需要在应用部署的时候结合业务行为指定部署的最优解。

    以上内容摘自《企业级云原生白皮书项目实战》电子书,点击https://developer.aliyun.com/ebook/download/7774可下载完整版

    2022-10-17 16:53:25
    赞同 展开评论 打赏

国内唯一 Forrester 公共云容器平台领导者象限。

相关产品

  • 容器服务Kubernetes版
  • 相关电子书

    更多
    ACK 云原生弹性方案—云原生时代的加速器 立即下载
    ACK集群类型选择最佳实践 立即下载
    企业运维之云原生和Kubernetes 实战 立即下载

    相关镜像