在Docker环境中进行性能监控和调优是保障容器化应用稳定运行的关键。以下是针对不同场景的推荐工具及使用方案:
Docker Stats
docker stats [容器名]
Docker Events
docker events --filter 'event=start|stop|die'
bash
docker run -d --name=cadvisor \
-v /:/rootfs:ro -v /var/run:/var/run:rw \
-v /sys:/sys:ro -v /var/lib/docker:/var/lib/docker:ro \
-p 8080:8080 google/cadvisor:latest
docker-compose
部署,配置抓取cAdvisor或Node Exporter的指标。193
)。bash
docker run -d --name=netdata \
-p 19999:19999 \
-v /proc:/host/proc:ro \
-v /sys:/host/sys:ro \
-v /var/run/docker.sock:/var/run/docker.sock:ro \
netdata/netdata
bash
sysdig -c topcontainers_cpu # 查看容器CPU排名
sysdig -pc -c spy_users container.name=nginx # 追踪容器内进程
bash
docker run -d --name=weave-scope \
-v /var/run/docker.sock:/var/run/docker.sock \
-p 4040:4040 weaveworks/scope
perf
录制容器进程:
bash
docker run --privileged --pid=host -it ubuntu bash -c \
"apt-get update && apt-get install -y linux-perf && perf record -p <PID> -g -- sleep 30"
bash
docker run --cpus=2 nginx # 限制容器最多使用2核
bash
docker run -m 1g --memory-swap=2g nginx # 限制内存+Swap
I/O优化:
--blkio-weight
限制磁盘带宽。网络优化:
macvlan
或ipvlan
)。tc
(Traffic Control)限制带宽。场景 | 推荐工具 |
---|---|
快速临时监控 | docker stats , ctop |
长期监控+告警 | Prometheus + Grafana + cAdvisor |
深度故障排查 | Sysdig, perf + FlameGraph |
可视化拓扑 | Weave Scope |
通过组合上述工具,可以构建从基础监控到深度调优的完整解决方案。根据团队规模和技术栈选择开源或商业方案。