新版本容器内存和网络流量问题

要获取 当前容器的内存使用情况(尤其是 RSS,即实际物理内存占用),应该使用 Prometheus 指标中的:

container_memory_rss

🔍 你给出的数据中有两类指标:

✅ 推荐使用(带 podnamespace 等信息):

container_memory_rss{container="", id="/kubepods.slice/...pod67141e92_cd2a_43b9_b7cb_25392587b728.slice", namespace="kube-system", pod="coredns-787d4945fb-kxfmd"} 3.7072896e+07

这个是 Pod 汇总级别RSS 内存使用,Prometheus 会将同一 Pod 内多个容器的内存统计在一起(如果 container name 为空就表示是 pod 总体)。

🚫 不建议使用(带 docker-xxx.scope):

container_memory_rss{container="", id="/kubepods.slice/.../docker-5012be3e9e564cd05df656524641b1424aeca7cc11926c524d444a83f50017a2.scope"}

这个是 容器级别cgroup 路径(通常是 docker/runtime ID),但缺乏 namespacepodcontainer 等元数据信息,不便于识别具体是哪个容器


✅ 建议选择的方式:

如果你想看 Pod 的总内存使用

container_memory_rss{pod="coredns-787d4945fb-kxfmd", namespace="kube-system"}

如果你想看 单个容器的内存,确保 container!="POD" 并指定容器名,例如:

container_memory_rss{container="coredns", pod="coredns-787d4945fb-kxfmd", namespace="kube-system"}

注意:容器名为空(container="")时通常是代表整个 pod 的 pause 容器或 pod 级别,不是具体容器。


总结:

方式指向是否推荐
id=...podxxxx.slice 且有 podnamespace 标签 Pod 层面 ✅ 推荐
id=...docker-xxx.scope 且没有元数据标签 容器层面,但难以识别 ❌ 不推荐
container="具体名称" 且有 podnamespace 标签 精确到容器 ✅ 推荐

需要帮助写具体 PromQL 查询语句或 Grafana 面板?可以告诉我 😎

 

posted on 2025-04-23 15:40  吃草的青蛙  阅读(8)  评论(0)    收藏  举报

导航