在容器内进行内存监控的常用指标包括
1、 内存中的cache用量
container_memory_cache
2、 常驻的内存用量
container_memory_rss
3、 交换分区用量
container_memory_swap
4、 内存的总占用量
container_memory_usage_bytes
由于container_memory_usage_bytes包括container_memory_cache,所以在计算容器的实际内存占用时,是将container_memory_usage_bytes减去container_memory_cache统计的。
内存指标都是仪表盘类型的数据,可以直接通过标签获取每个pod的内存指标
5、获取内存用量的sql
container_memory_usage_bytes{pod="kubernetes-dashboard-74d688b6bc-stl4c"}
在监控k8s时,通过上面的查询条件会获取3条监控指标:sanbox容器内存、业务容器内存和整个pod的内存。可以追加过滤条件获取其中的某个指标
容器过程中如果达到了上限,就会触发OOM事件。堆内存OOM的判断并不是通过container_memory_usage_bytes指标进行的。而是通过《container_memory_working_set_bytes{name!~"POD"}》指标进行的。所以通过 container_memory_working_set_bytes / kube_pod_container_resource_limits_memory_bytes获得内存使用率
摘自:
https://www.cnblogs.com/suyj/p/15621392.html