当我检查了普罗米修斯的自定义指标时,我看到container_memory_cache但容器级别的内存缓冲区数据不可用。当我运行vmstat -S M
命令时。我可以按以下方式获取缓冲的内存。但是在kubernetes架构中,在每个Pod上运行该命令将浪费资源。是否还有其他方法可以获取每个Pod的这些数据?除此之外,vmstat指标也没有缓冲的内存数据。 ?谢谢
vmstat -S M
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
3 0 0 456 2 19594 0 0 6 39 4 3 7 5 87 0 0
最佳答案
例如,您可以在cgroups中找到许多有关容器内存使用情况的信息。
/sys/fs/cgroup/memory/docker/{id}/memory.stat
可以从节点OS访问此类文件,这些文件将为您提供有关容器内存使用情况的所有可用信息。
但是,据我了解,容器内部没有缓冲内存,以避免节点OS和容器本身进行双重缓存。
关于memory - 缺少Prometheus容器级别的缓冲内存指标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52925843/