情况:
普罗米修斯舱中有两个容器(配置-再装载机,普罗米修斯)
我将resources.limits.memory分别设为50 as、32 as。
公制container_memory_failcnt在5分钟内从10提高到8000 (精确速率(container_memory_failcnt{}5m))。
mertic container_memory_failcnt会告诉容器达到内存限制的次数。
但是根据标准container_memory_working_set_bytes,prometheus容器使用了18 of的内存。
这个吊舱也没有被OOM杀死。但公制container_memory_failcnt却大幅增加。
OOM和达到内存限制不同吗?
我想知道一些候选人为什么普罗米修斯容器在5分钟内使用了如此多的内存(18 so )。(它通常使用10 or或以下)
发布于 2022-05-06 01:59:34
在google上搜索了两天之后,我知道了答案。
container_memory_failcnt真正检查目标容器是否达到内存限制。
此指标与container_memory_usage_bytes一起使用。
度量container_memory_working_set_bytes是容器当前使用的实际内存大小。
而oom杀手正在关注这个指标。
因此,在我的例子中,container_memory_failcnt一直在增加,但container_memory_working_set_bytes低于容器的limits.memory,所以吊舱不会被杀死。
特别感谢鲍勃·科顿
https://faun.pub/how-much-is-too-much-the-linux-oomkiller-and-used-memory-d32186f29c9d
https://stackoverflow.com/questions/72108914
复制相似问题