概述
对容器中的服务进行监控,常见方案是采用Prometheus+grafana。其中对内存的监控有很多指标,本文对它们进行了一些分析和解读,并做了一些试验。我们使用了四台虚机做了一个容器集群,其中一台做容器master,另外三台是容器node节点。
查看cAdvisor输出的内存指标
我们使用kubernetes进行管理,自带了容器监控cAdvisor exporter,可以直接通过页面查看监控指标,例如直接访问一台IP为172.18.12.188的node节点:
http://172.18.12.188:4194/metrics
页面显示如下:
摘取与内存相关的指标,格式类似于:container_memory_xxxxxxx
具体一条container_memory_rss指标的数据如下所示:
container_memory_rss
{
container_name="kube-flannel",
id="/kubepods/besteffort/pod013e338d-6e3a-11e8-b687-fa163e6f3f6b/987ba969e2d44729b03a543cb284ee398f975d75d6a11935c64517b053cfb10f",
image="sha256:2b736d06ca4c91b9fe5fd542b9960d597e0cbf15a2cb0e0f33d3f7e2ec7dbd54",
name="k8s_kube-flannel_kube-flannel-ds-665lq_kube-system_013e338d-6e3a-11e8-b687-fa163e6f3f6b_8",
namespace="kube-system",
pod_name="kube-flannel-ds-665lq"
} 2.4334336e+07
容器监控的内存相关指标
容器内存相关的指标有如下八个,说明如下:
名称 | 类型 | 单位 | 说明 |
---|---|---|---|
container_memory_rss | gauge | 字节数 bytes |
RSS内存,即常驻内存集(Resident Set Size),是分配给进程使用实际物理内存,而不是磁盘上缓存的虚拟内存。RSS |