概述
对容器中的服务进行监控,常见方案是采用Prometheus+grafana。其中对容器服务的CPU的监控有一组指标,本文对它们进行了一些分析和解读,并做了一些试验。
查看cAdvisor输出的容器CPU监控指标
我们使用kubernetes进行管理,自带了容器监控cAdvisor exporter,可以直接通过页面查看监控指标,例如直接访问一台IP为172.18.12.188的node节点:
http://172.18.12.188:4194/metrics
直接在页面中搜索以 container_cpu 开头的指标,如下表所示:
名称 | 类型 | 单位 | 说明 |
---|---|---|---|
container_cpu_usage_seconds_total | counter | 秒数 |
该容器服务针对每个CPU累计消耗的CPU时间。如果有多个CPU,则总的CPU时间需要把各个CPU耗费的时间相加 |
container_cpu_user_seconds_total | counter | 秒数 |
该容器服务累计消耗的用户(user)CPU时间 |
container_cpu_system_seconds_total | counter | 秒数 |
该容器服务累计消耗的系统(system)CPU时间 |
container_cpu_cfs_throttled_seconds_total | counter | 秒数 |
cfs 是完全公平调度器(Completely Fair Scheduler)的缩写,是Linux的一种控制CPU资源占用的机制,可以按指定比例分配调度CPU 的使用时间。这个指标指的是该容器服务被限制使用的CPU时间 |
container_cpu_cfs_throttled_periods_total | counter | 个数 |
文档注释是:“Number of throttled period intervals.”,解释为被限制/节流的CPU时间周期数。 |