Docker查看容器资源占用情况
描述
有些时候
Docker集群项目出现问题,需要快速查找问题所在,这种时候首先就需要查看Docker的各个容器是否有资源使用不正常的情况
操作方法
使用docker stats 命令用来显示容器使用的系统资源。
1 | docker stats |
默认输出
1 | CONTAINER CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS |
可以看到输出上面内容的情况下,会每隔1秒钟刷新一次输出的内容。按下 Ctrl+C 可以结束。下面是输出的内容的说明:
- [CONTAINER]:以短格式显示容器的 ID。
- [CPU %]:CPU 的使用情况。
- [MEM USAGE / LIMIT]:当前使用的内存和最大可以使用的内存。
- [MEM %]:以百分比的形式显示内存使用情况。
- [NET I/O]:网络 I/O 数据。
- [BLOCK I/O]:磁盘 I/O 数据。
- [PIDS]:PID 号。
如果只需要查看当时状态,可以使用--no-stream,输出之后命令行会自动结束
1 | docker stats --no-stream |
很明显按照上面这种情况,如果容器太多了,我们很难去对应是输出的哪一个容器的信息。这个时候就需要使用--format将返回结果按照自己需要的内容输出
1 | docker stats --format "table {{.Container}}\t{{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}\t{{.NetIO}}\t{{.BlockIO}}\t{{.MemPerc}}\t{{.PIDs}}" |
这样就能很容易的对应自己设置容器名称
1 | CONTAINER NAME CPU % MEM USAGE / LIMIT NET I/O BLOCK I/O MEM % PIDS |
下面是--format可自定义的占位符
| 符号 | 说明 |
|---|---|
.Container |
容器的名称或 ID |
.Name |
容器名称 |
.ID |
容器 ID |
.CPUPerc |
CPU 使用率 |
.MemUsage |
内存使用量 |
.NetIO |
网络 I/O |
.BlockIO |
磁盘 I/O |
.MemPerc |
内存使用率 |
.PIDs |
PID 号 |
有些时候为了方便处理,也可以将--format按照json格式输出
1 | docker stats --no-stream --format "{\"container\":\"{{ .Container }}\",\"memory\":{\"raw\":\"{{ .MemUsage }}\",\"percent\":\"{{ .MemPerc }}\"},\"cpu\":\"{{ .CPUPerc }}\"}" |
1 | {"container":"d7ef5139ea28","memory":{"raw":"273.3 MiB / 1.796 GiB","percent":"14.86%"},"cpu":"0.10%"} |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Akers's Blog!
评论




