我正在调查OOM杀死我的kubernetes集群中的一项服务。
我要做的第一件事就是看一看被杀死的Pod的内存使用情况的格拉那那图,令我惊讶的是,我看到OOM周围发生了内存使用率的大幅增长。 但是,pod当时没有运行任何计算,因此这样的峰值非常令人困惑(pod本身存在内存泄漏,使其缓慢达到内存限制,但峰值不是其中的一部分)。
我已经使用Prometheus仔细研究了峰值,并且我了解了一小会儿,当旧的Pod被新的Pod取代时,kubelet
报告两个Pod的指标,这是由于格拉法纳绘图中使用的sum by (container)
显示峰值。
不进行汇总:(container_memory_rss{pod="XXX", container!="POD", container!=""}
)
具有聚合功能:(sum by(container) (container_memory_rss{pod="XXX", container!="POD", container!=""})
)
我想知道是否可以通过某种方式避免重叠,以及它是由于我这一边的一些错误配置还是由kubelet
或prometheus
引起的。
谢谢!