容器内存告警但实际无异常
监控报容器的内存报警,但是进容器查看发现实际没有使用那么多的内存,再看监控数据,确实是超了预警值触发了告警
看配置的指标,用的是container_memory_working_set_bytes和kube_pod_container_resource_limits_memory_bytes ,kube_pod_container_resource_limits_memory_bytes 是当前容器内存限制大小,container_memory_working_set_bytes通过查看cadvisor可知是memory.usage-total_inactive_file,也就是cgroup的memory.usage_in_bytes
进容器的/sys/fs/cgroup/memory目录下
memory.usage_in_bytes 已使用的内存量(包含cache和buffer)(字节),相当于linux的used_meme
memory.limit_in_bytes 限制的内存总量(字节),相当于linux的total_mem
memory.failcnt 申请内存失败次数计数
memory.stat 内存相关状态
memory.usage_in_bytes的计算方式包含rss+cache+buffer,total_active_file和total_inactive_file都包含在cache,cache是不会主动回收的,只有当容器被销毁或者系统内存不足才回去回收,所以才会出现上面的情况
参考博客:https://blog.csdn.net/weixin_39961559/article/details/80496419
https://blog.csdn.net/weixin_39961559/article/details/86432283
https://www.cnblogs.com/276815076/p/5478966.html
评论已关闭