0

我在 grafana 中发现我的 pod <***-qkcdl> 占用了大约 1.0Gcontainer_memory_working_set_bytes和 1.4G 的container_memory_rss;

grafana 中的 pod 内存使用情况

pod的container_memory_rss(最大平均电流)

我对container_memory_working_set_bytesand的查询container_memory_rss是:

container_memory_working_set_bytes{k8s_cluster="$cluster", namespace="$dept", pod=~'$pod', container=~"$container"}

container_memory_cache{k8s_cluster="$cluster", namespace="$dept", pod=~'$pod', container=~"$container"}

然后当我跟踪 pprof 堆 inuse_space 时,它​​显示:

go tool pprof --inuse_space pprof http://{pod_ip}:8899/debug/pprof/heap
Fetching profile over HTTP from http://{pod_ip}:8899/debug/pprof/heap
pprof: read pprof: is a directory
Fetched 1 source profiles out of 2
Saved profile in {local_path}
File: {app}
Type: inuse_space
Time: Oct 15, 2021 at 6:38pm (CST)
Entering interactive mode (type "help" for commands, "o" for options)
(pprof)
(pprof) top10
Showing nodes accounting for 335.36MB, 91.58% of 366.19MB total
Dropped 195 nodes (cum <= 1.83MB)
Showing top 10 nodes out of 77
...

那么,为什么我的golang应用程序只使用了335.36MB的堆空间,而grafana却显示了大约1.0G的working_set_size和1.4G的rss,“335.36MB”、“1.0G”和“1.4G”是什么意思?为什么 ?

PS:我知道指标是什么意思,但它对我没有任何作用

container_memory_rss:匿名和交换缓存内存的数量(包括透明的大页面)。

container_memory_working_set_bytes:工作集内存量,包括最近访问的内存、脏内存和内核内存。工作集是<=“用法”。

4

0 回答 0