有三类方法:单机用 docker stats 查实时 CPU/内存;K8s 集群用 Metrics Server + kubectl top;生产级用 Prometheus + cAdvisor + Grafana;云平台可直接用托管监控服务。

直接看容器实时 CPU 和内存消耗,有三类方法可选,按场景复杂度和运维成熟度递进。
单机 Docker 环境:用 docker stats 最快
适合开发测试、CI/CD 构建节点或小型部署。命令本身轻量、无依赖:
- 运行
docker stats查看所有运行中容器的实时刷新数据(CPU%、MEM USAGE/LIMIT、MEM%、NET I/O、BLOCK I/O) - 加
-a显示已停止容器;加--no-stream只输出一次快照;用--format自定义字段,比如:docker stats --format "table {{.Name}}\t{{.CPUPerc}}\t{{.MemPerc}}" nginx-app - 注意:它只反映当前时刻瞬时值,不存历史,也无法告警
Kubernetes 集群基础监控:Metrics Server + kubectl top
这是 K8s 原生推荐的轻量级资源指标入口,支撑 HPA 和日常排障:
- 确保 Metrics Server 已部署(Minikube 用
minikube addons enable metrics-server;生产环境建议用 Helm 或 manifest 安装) - 验证:执行
kubectl get pods -n kube-system -l k8s-app=metrics-server,状态为 Running - 查节点:
kubectl top nodes;查 Pod:kubectl top pods -n default;加--containers可细分到容器级 - 底层数据来自每个节点 kubelet 内置的 cAdvisor,采集间隔默认 15–30 秒,延迟低但无长期存储
生产级可观测性:Prometheus + cAdvisor + Grafana
当需要历史趋势、多维下钻、阈值告警或跨集群对比时,这套组合是事实标准:
- cAdvisor 已集成在 kubelet 中(默认监听
:10250/metrics/cadvisor),暴露容器级指标如container_cpu_usage_seconds_total、container_memory_usage_bytes - Prometheus 抓取这些端点,按 job、instance、namespace、pod、container_name 等标签自动打标,支持任意时间范围查询
- 常用 PromQL 示例:
rate(container_cpu_usage_seconds_total{container!="", namespace="prod"}[5m]) * 100(各容器 5 分钟平均 CPU 使用率 %)container_memory_usage_bytes{container!="", namespace="prod"} / container_spec_memory_limit_bytes{container!="", namespace="prod"} * 100(内存使用占比) - Grafana 导入现成仪表盘(如 Kubernetes / Compute Resources / Cluster 或 Node),即可图形化呈现 CPU/内存热力图、TopN 排名、异常突刺检测
云平台托管方案:直接用控制台监控服务
如果使用阿里云 ACK、腾讯云 TKE 或 AWS EKS,通常内置集成监控:
- 腾讯云 TKE 的容器监控页面,默认每分钟聚合 cAdvisor 数据,提供容器粒度的 CPU 利用率、内存使用量曲线
- 支持按命名空间、工作负载、Pod 名筛选,并可设置阈值告警(如内存持续超 90% 超过 5 分钟触发短信)
- 优势是开箱即用、无需维护 Prometheus 实例,但自定义查询和长期留存策略可能受限


















