Docker 教程

Docker 显示容器统计信息

在 Docker 中,使用 docker container stats 命令可以实时显示正在运行的 Docker 容器的资源使用统计信息。

语法

语法如下:

用法: docker container stats [OPTIONS] [CONTAINER...]

显示容器资源使用统计的实时流

别名:
  docker container stats、docker stats

选项:
  -a, --all   显示所有容器(默认只显示正在运行的容器)。
  --format string   使用自定义模板格式化输出:
      'table': 以带列头的表格格式打印输出(默认值)
      'table TEMPLATE': 使用给定的 Go 模板以表格格式打印输出
      'json': 以 JSON 格式打印
      'TEMPLATE': 使用给定的 Go 模板打印输出。
      有关使用模板格式化输出的更多信息,请参阅 https://docs.docker.com/go/formatting/。
  --no-stream 禁用流式统计,只提取第一个结果
  --no-trunc 不截断输出

基本用法

查看指定容器统计信息

执行docker container stats命令将列出所有正在运行的容器的统计信息,包括容器名称或 ID、CPU 使用率、内存使用量、网络 I/O 和磁盘 I/O 等。

例如:显示名为 redis 容器的资源统计

root@hxvm2:~# docker container stats redis
CONTAINER ID   NAME      CPU %     MEM USAGE / LIMIT     MEM %     NET I/O       BLOCK I/O        PIDS
7bfac83b61a3   redis     0.18%     14.29MiB / 1.859GiB   0.75%     5.35kB / 0B   11.7MB / 4.1kB   6

以下是对这些字段的说明:

  • CONTAINER ID:这是容器的唯一标识符,通常是一个十六进制的字符串。通过这个 ID,可以对特定的容器进行各种操作,如启动、停止、查看日志等。

  • NAME:容器的名称。可以在创建容器时指定一个有意义的名称,方便识别和管理容器。

  • CPU %:表示容器对 CPU 资源的使用百分比。这个值反映了容器在一段时间内占用 CPU 资源的程度。如果这个值较高,说明容器正在进行大量的计算任务,可能会影响到其他容器或系统的性能。

  • MEM USAGE / LIMIT:“MEM USAGE” 是容器当前使用的内存量,而 “LIMIT” 是为容器设置的内存限制。例如 “14.29MiB / 1.859GiB” 表示容器当前使用了 14.29 兆字节的内存,而容器被限制最多使用 1.859 吉字节的内存。监控内存使用情况对于确保容器不会过度消耗系统资源非常重要,以免影响其他容器或整个系统的稳定性。

  • MEM %:容器当前使用的内存占设置的内存限制的百分比。在上面的例子中,0.75% 表示容器使用的内存占其允许使用的总内存的比例较小。

  • NET I/O:表示容器的网络输入(从外部接收的数据量)和输出(发送到外部的数据量)。例如 “5.35kB / 0B” 表示容器已经接收了 5.35 千字节的数据,但目前没有向外发送数据。监控网络 I/O 可以帮助了解容器的网络活动情况,以及是否存在网络拥塞或异常的高流量。

  • BLOCK I/O:表示容器的块设备输入(从存储设备读取的数据量)和输出(写入存储设备的数据量)。例如 “11.7MB / 4.1kB” 表示容器已经从存储设备读取了 11.7 兆字节的数据,并向存储设备写入了 4.1 千字节的数据。监控块设备 I/O 对于确保容器不会过度使用存储资源以及检测存储相关的性能问题非常重要。

  • PIDS:表示容器中当前运行的进程数量。在这个例子中,容器中有 6 个进程在运行。监控进程数量可以帮助了解容器的活动状态,并确保容器不会因为运行过多的进程而耗尽资源。

查看所有容器统计信息

root@hxvm2:~# docker container stats

CONTAINER ID   NAME            CPU %     MEM USAGE / LIMIT     MEM %     NET I/O           BLOCK I/O         PIDS
7bfac83b61a3   redis           0.19%     14.29MiB / 1.859GiB   0.75%     5.35kB / 0B       11.7MB / 4.1kB    6
41a203fa62c5   eager_taussig   0.00%     7.199MiB / 1.859GiB   0.38%     7.26kB / 1.95kB   5.29MB / 16.4kB   2

常见用途

(1)资源监控

可以实时监控容器的资源使用情况,帮助你了解容器对系统资源的消耗。这对于确保容器在运行时不会过度消耗资源导致系统性能下降非常重要。

例如,如果你在一个服务器上运行多个容器,可以使用docker container stats来监控每个容器的 CPU 和内存使用情况,以便及时调整资源分配。

(2)性能优化

通过观察容器的资源使用统计信息,可以发现性能瓶颈并进行优化。例如,如果一个容器的 CPU 使用率一直很高,可以考虑优化容器内的应用程序代码或增加容器的 CPU 资源限制。

同样,如果一个容器的内存使用量接近或超过了限制,可以考虑调整应用程序的内存使用方式或增加容器的内存限制。

(3)故障排除

当容器出现性能问题或异常行为时,查看资源使用统计信息可以帮助确定问题的根源。例如,如果一个容器的网络 I/O 非常高,可能是容器内的应用程序在进行大量的网络通信,或者可能存在网络问题导致通信延迟。

通过分析这些统计信息,可以采取相应的措施来解决问题,例如优化应用程序的网络使用、调整网络配置或检查网络连接。

总结

docker container stats 命令是一个非常有用的工具,用于监控正在运行的 Docker 容器的资源使用情况。通过实时查看这些统计信息,可以更好地管理和优化容器化应用程序的性能。

说说我的看法
全部评论(
没有评论
关于
本网站属于个人的非赢利性网站,转载的文章遵循原作者的版权声明,如果原文没有版权声明,请来信告知:hxstrive@outlook.com
公众号