Kubernetes OOM 和 CPU Throttling 问题

文章讨论了在Kubernetes环境中,内存不足(OOM)和CPU限制(Throttling)的问题,以及如何通过limits和requests进行资源配置以防止这些问题。监控Pod的OOM情况可以通过检测ExitCode137或使用node-exporter的node_vmstat_oom_kill指标。CPU限流是当进程接近资源限制时,进程速度减慢的现象。建议主动监控CPU使用率,避免不切实际的limits导致性能影响。同时,文章提醒要注意设置适当的requests和limits,以及为关键Pod分配PriorityClasses以防止被抢占。

介绍

使用 Kubernetes 时,内存不足(OOM)错误和 CPU 限制(Throttling)是云应用程序中资源处理的主要难题。为什么呢?

云应用程序中的 CPU 和内存要求变得越来越重要,因为它们与您的云成本直接相关。

通过 limits 和 requests,您可以配置 pod 应如何分配内存和 CPU 资源,以防止资源匮乏并调整云成本。

  • 如果节点没有足够的资源,Pod 可能会因抢占或节点压力而被驱逐。
  • 当进程运行内存不足 (OOM) 时,它会因为没有所需的资源而被 Kill。
  • 如果 CPU 消耗高于实际 limits,进程将开始受到限制。

OK,如何监控 Pod 快要 OOM 了,或者 CPU 快要被限制了呢?

Kubernetes OOM

Pod 中的每个容器都需要内存才能运行。

Kubernetes limits 是在 Pod 定义或 Deployment 定义中为每个容器设置的。

所有现代 Unix 系统都有一种方法可以杀死进程,以此回收内存(没用空闲内存的时候,只能杀进程了)。这个错误将被标记为 137 错误码或 OOMKilled。

State:          Running
    Started:      Thu, 10 Oct 2019 11:14:13 +0200
Last State:     Terminated
    Reason:       OOMKilled
    Exit Code:    137
    Started:      Thu, 10 Oct 2019 11:04:03 +0200
    Finished:     Thu, 10 Oct 2019 11:14:11 +0200

退出代码 137 意味着该进程使用的内存超过允许的数量,必须

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夜莺开源监控

您的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值