【云原生】监视Docker桌面的容器内存和CPU使用情况

这篇具有很好参考价值的文章主要介绍了【云原生】监视Docker桌面的容器内存和CPU使用情况。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【云原生】监视Docker桌面的容器内存和CPU使用情况

目录

一、如何监视Docker桌面的容器内存和CPU使用情况

1、stats命令

2、Docker 统计命令stats是如何工作的

2.1、命令与描述

2.2、OPTIONS

2.3、例子

2.4、格式化

3、满足资源使用扩展

4、如何安装“资源使用情况”扩展插件?

5、总结


一、如何监视Docker桌面的容器内存和CPU使用情况

1、stats命令

    Docker 有一个内置的 stats 命令,可以简单地查看容器正在使用的资源量。只要在 CLI 中添加 $docker 统计信息,就可以读取所有运行容器的 CPU内存网络磁盘使用情况。

    但是这个命令只能给你当前的时刻。如果希望看到资源随着时间的推移而演变,那么该怎么办?或者查看 DockerCompose 项目使用了多少 CPU 和内存?或者根据 CPU 密集程度最高的容器进行排序,然后根据超过80% 的 CPU 使用情况进行筛选?

    通过资源使用扩展,可以更清楚地了解自己的使用情况,并能够分析数据以获得更好的见解。下面来看看它是如何工作的。

2、Docker 统计命令stats是如何工作的

使用 Docker 的 stats 命令,可以实时查看容器使用的资源。使用这个工具可以分析每个运行的容器,以确定它的 CPU、内存、网络和磁盘利用率。

要使用这个命令,打开一个终端并运行 docker stats 命令:

$ docker stats
CONTAINER CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O
 
redis1 0.07% 796 KB / 64 MB 1.21% 788 B / 648 B 3.568 MB / 512 KB
 
redis2 0.07% 2.746 MB / 64 MB 4.29% 1.266 KB / 648 B 12.4 MB / 0 B

Docker stats 是一个有用的命令,它提供有关容器在给定时间点正在使用的资源的信息。但仅此而已。在这个扩展之前,如果希望在一段时间内将信息串联在一起,那么需要使用相当手动的 ping 和数据整合过程。

2.1、命令与描述

 docker stats [OPTIONS] [CONTAINER...]

Docker stats 命令返回用于运行容器的实时数据流。若要将数据限制为一个或多个特定容器,请指定由空格分隔的容器名称或 id 列表。可以指定一个已停止的容器,但是已停止的容器不返回任何数据。

如果需要有关容器资源使用情况的更详细信息,请使用/Container/(id)/stats API 端点。

注意:

  • 在 Linux 上,Docker CLI 通过从总内存使用量中减去缓存使用量来报告内存使用量。API 不执行这样的计算,而是提供总内存使用量和缓存的数量,以便客户机可以根据需要使用数据。缓存使用量定义为 cgroup v1 hosts。在Docker 19.03及以上版本的 memy.stat 文件中 total _ inactive _ file 字段的值。在 cgroup v2主机上,缓存使用量定义为 inactive _ file 字段的值。
  • PIDS 列包含由该容器创建的进程和内核线程的数量。线程是 Linux 内核使用的术语。其他等价术语是“轻量级进程”或“内核任务”等等。PIDS 列中的大量进程和少量进程(如 ps 或 top 所报告的)可能表明容器中的某些东西正在创建许多线程。

2.2、OPTIONS

名字,速记 默认 描述
--all , -a 显示所有容器(默认显示正在运行)
--format 使用 Go 模板漂亮打印图像
--no-stream 禁用流统计信息,只拉取第一个结果
--no-trunc 不截断输出

2.3、例子

针对 Linux 守护进程在所有运行的容器上运行 docker 统计信息。

$ docker stats

CONTAINER ID        NAME                                    CPU %               MEM USAGE / LIMIT     MEM %               NET I/O             BLOCK I/O           PIDS
b95a83497c91        awesome_brattain                        0.28%               5.629MiB / 1.952GiB   0.28%               916B / 0B           147kB / 0B          9
67b2525d8ad1        foobar                                  0.00%               1.727MiB / 1.952GiB   0.09%               2.48kB / 0B         4.11MB / 0B         2
e5c383697914        test-1951.1.kay7x1lh1twk9c0oig50sd5tr   0.00%               196KiB / 1.952GiB     0.01%               71.2kB / 0B         770kB / 0B          1
4bda148efbc0        random.1.vnc8on831idyr42slu578u3cr      0.00%               1.672MiB / 1.952GiB   0.08%               110kB / 0B          578kB / 0B          2

如果不使用—— format 指定格式字符串,则显示以下列

列名 描述
CONTAINER ID and Name  

容器的 ID 和名称

CPU % and MEM % 容器正在使用的主机 CPU 和内存的百分比
MEM USAGE / LIMIT  

容器正在使用的内存总量,以及允许使用的内存总量

NET I/O 容器通过其网络接口发送和接收的数据量
BLOCK I/O  

容器从主机上的块设备读取和写入的数据量

PIDs 容器创建的进程或线程的数量

针对 Linux 守护进程按名称和 id 在多个容器上运行 docker 统计信息

$ docker stats awesome_brattain 67b2525d8ad1

CONTAINER ID        NAME                CPU %               MEM USAGE / LIMIT     MEM %               NET I/O             BLOCK I/O           PIDS
b95a83497c91        awesome_brattain    0.28%               5.629MiB / 1.952GiB   0.28%               916B / 0B           147kB / 0B          9
67b2525d8ad1        foobar              0.00%               1.727MiB / 1.952GiB   0.09%               2.48kB / 0B         4.11MB / 0B         2

在名为 nginx 的容器上运行 docker stats 并获得 json 格式的输出

$ docker stats nginx --no-stream --format "{{ json . }}"
{"BlockIO":"0B / 13.3kB","CPUPerc":"0.03%","Container":"nginx","ID":"ed37317fbf42","MemPerc":"0.24%","MemUsage":"2.352MiB / 982.5MiB","Name":"nginx","NetIO":"539kB / 606kB","PIDs":"2"}

在所有(运行和停止)容器上运行自定义格式的 Docker 统计信息

docker stats --all --format "table {{.Container}}\t{{.CPUPerc}}\t{{.MemUsage}}" fervent_panini 5acfcb1b4fd1 drunk_visvesvaraya big_heisenberg

CONTAINER                CPU %               MEM USAGE / LIMIT
fervent_panini           0.00%               56KiB / 15.57GiB
5acfcb1b4fd1             0.07%               32.86MiB / 15.57GiB
drunk_visvesvaraya       0.00%               0B / 0B
big_heisenberg           0.00%               0B / 0B

在上面的例子中,drink _ visvesvaraya 和 big _ heisenberg 是被阻止的容器

针对 Windows 守护进程在所有运行的容器上运行 docker 统计信息

PS E:\> docker stats
CONTAINER ID        CPU %               PRIV WORKING SET    NET I/O             BLOCK I/O
09d3bb5b1604        6.61%               38.21 MiB           17.1 kB / 7.73 kB   10.7 MB / 3.57 MB
9db7aa4d986d        9.19%               38.26 MiB           15.2 kB / 7.65 kB   10.6 MB / 3.3 MB
3f214c61ad1d        0.00%               28.64 MiB           64 kB / 6.84 kB     4.42 MB / 6.93 MB

针对 Windows 守护进程按名称和 id 在多个容器上运行 docker 统计信息

PS E:\> docker ps -a
CONTAINER ID        NAME                IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
3f214c61ad1d        awesome_brattain    nanoserver          "cmd"               2 minutes ago       Up 2 minutes                            big_minsky
9db7aa4d986d        mad_wilson          windowsservercore   "cmd"               2 minutes ago       Up 2 minutes                            mad_wilson
09d3bb5b1604        fervent_panini      windowsservercore   "cmd"               2 minutes ago       Up 2 minutes                            affectionate_easley

PS E:\> docker stats 3f214c61ad1d mad_wilson
CONTAINER ID        NAME                CPU %               PRIV WORKING SET    NET I/O             BLOCK I/O
3f214c61ad1d        awesome_brattain    0.00%               46.25 MiB           76.3 kB / 7.92 kB   10.3 MB / 14.7 MB
9db7aa4d986d        mad_wilson          9.59%               40.09 MiB           27.6 kB / 8.81 kB   17 MB / 20.1 MB

2.4、格式化

格式化选项(—— format)使用 Go 模板打印容器输出。

Go 模板的有效占位符如下:

占位 描述
.Container  

容器名称或 ID (用户输入)

.Name 容器名称
.ID 容器ID
.CPUPerc  

CPU 百分比

.MemUsage 内存使用情况
.NetIO 网络 IO
.BlockIO  

阻断 IO

.MemPerc 内存百分比(Windows 上不可用)
.PIDs  

PID 数量(Windows 上不可用)

当使用—— format 选项时,stats 命令要么输出与模板声明的完全一样的数据,要么在使用 table 指令时也包含列标题。

下面的示例使用一个没有标题的模板,并输出所有图像的 Container 和 CPUPerc 条目,这两个条目用冒号(:)分隔:

$ docker stats --format "{{.Container}}: {{.CPUPerc}}"

09d3bb5b1604: 6.61%
9db7aa4d986d: 9.19%
3f214c61ad1d: 0.00%

要以表格格式列出所有容器的名称、 CPU 百分比和内存使用情况的统计信息,可以使用:

$ docker stats --format "table {{.Container}}\t{{.CPUPerc}}\t{{.MemUsage}}"

CONTAINER           CPU %               PRIV WORKING SET
1285939c1fd3        0.07%               796 KiB / 64 MiB
9c76f7834ae2        0.07%               2.746 MiB / 64 MiB
d1ea048f04e4        0.03%               4.583 MiB / 64 MiB

默认格式如下:

在 Linux 上:

"table {{.ID}}\t{{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}\t{{.MemPerc}}\t{{.NetIO}}\t{{.BlockIO}}\t{{.PIDs}}"

在Windows上:

"table {{.ID}}\t{{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}\t{{.NetIO}}\t{{.BlockIO}}"

3、满足资源使用扩展

 Resource Use 扩展通过运行 Docker stats 命令,然后将数据编译到用户界面,显示哪些容器在其开发计算机上消耗的资源最多。

使用资源使用扩展,可以快速:

  • 分析最耗资源的容器或 Docker Compose 项目。
  • 观察容器的资源使用是如何随时间变化的。
  • 查看容器使用了多少 CPU、内存、网络和磁盘空间。

【云原生】监视Docker桌面的容器内存和CPU使用情况

插件顶部的卡片可以让你快速浏览所使用的资源:

  • CPU 核心使用率
  • 内存使用情况
  • 运行中的容器

Table 视图显示了容器的详细信息。通过选择要显示的列和要筛选的值,可以自定义视图。以下是可供选择的栏目:

  • NAME – 容器名称
  • STATUS – 容器状态 (运行中或关闭)
  • CPU (%) 容器使用的主机 CPU 和内存的百分比
  • MEM (%) – 超出允许使用的总限制的内存使用量
  • DISK READ/WRITE - 容器从主机上的块设备读取和写入的数据量
  • NETWORK I/O –  容器通过其网络接口发送和接收的数据量
  • PIDs – 容器创建的进程或线程的数量

Chart 视图提供了随时间变化的使用情况的可视化表示。

【云原生】监视Docker桌面的容器内存和CPU使用情况

4、如何安装“资源使用情况”扩展插件?

资源使用扩展插件可以在 Docker Hub 上使用,也可以在 Docker 桌面的扩展插件下使用。

【云原生】监视Docker桌面的容器内存和CPU使用情况

5、总结

    Docker 有一个内置的 stats 命令,可以简单地查看容器正在使用的资源量。只要在 CLI 中添加 $docker 统计信息,就可以读取所有运行容器的 CPU内存网络磁盘使用情况。

    资源使用扩展可以帮助你深入了解容器是如何使用资源的,从而使优化容器变得更加容易和简单。如果你还没有尝试过 Docker 扩展,去扩展市场看看,安装一些吧!它们通过新的工具扩展了 Docker 桌面功能,比如回收 Docker 使用的磁盘空间、浏览日志或备份、恢复和共享卷的功能。甚至可以为所有操作系统创建自己的 Docker 扩展,包括 Windows、 WSL2、 macOS (包括 Intel 和 Apple Silicon)和 Linux。文章来源地址https://www.toymoban.com/news/detail-406912.html

到了这里,关于【云原生】监视Docker桌面的容器内存和CPU使用情况的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 命令查看Linux服务器内存、CPU、显卡、硬盘使用情况

    使用命令:free -m 大致结果类似下图: 内存占用情况 参数解释: Mem行(单位均为M): total:内存总数 used:已使用内存数 free:空闲内存数 shared:当前废弃不用 buffers:缓存内存数(Buffer) cached:缓存内舒数(Page) (-/+ buffers/cache)行: (-buffers/cache): 真正使用的内存数,指

    2024年02月04日
    浏览(74)
  • linux中系统性能监测命令sar,查看cpu、内存、磁盘、网络等使用情况

    显示系统CPU利用率的统计信息: -u : 这是sar命令的选项之一,表示要显示CPU利用率相关的统计数据。 1 : 这是指定采样间隔的参数,表示每秒采样一次数据。 5 : 这是指定采样次数的参数,表示总共采样5次数据。 %user:用户模式下消耗的 CPU 时间的比例。 %nice:通过 nice 改变了

    2024年02月08日
    浏览(56)
  • Docker网络(网络通信),资源控制(CPU优化,内存优化,磁盘优化),数据管理(数据卷,端口映射,容器互联)

    目录 docker网络 网络实现原理 网络实现实例 网络模式 查看Docker中的网络列表: 指定容器网络模式 模式详解 Host模式(主机模式): Container模式(容器模式): None模式(无网络模式): Bridge模式(桥接模式): 自定义网络: cpu优化概述 1. 资源限制: 2. CPU 实时调度策略:

    2024年01月16日
    浏览(84)
  • 云原生之深入解析如何正确计算Kubernetes容器CPU使用率

    使用 Prometheus 配置 kubernetes 环境中 Container 的 CPU 使用率时,会经常遇到 CPU 使用超出 100%,现在来分析一下: container_spec_cpu_period:当对容器进行 CPU 限制时,CFS 调度的时间窗口,又称容器 CPU 的时钟周期通常是 100000 微秒 container_spec_cpu_quota:是指容器的使用 CPU 时间周期总量

    2024年02月10日
    浏览(71)
  • Linux查看CPU和内存使用情况(ps、free、htop、atop、nmon、/proc/meminfo等)

    1.CPU占用最多的前10个进程: 2.内存消耗最多的前10个进程 3.虚拟内存使用最多的前10个进程 查看某一类进程占用总资源 思路:使用ps命令,对内存相关的列进行求和。 查看哪一列是内存、哪一列是内存百分比 由上图,内存百分比 我们就使用$4, 具体内存(KB)我们就用$6 如下

    2024年02月04日
    浏览(43)
  • Linux和Windows系统下:安装Anaconda、Paddle、tensorflow、pytorch,GPU[cuda、cudnn]、CPU安装教学,以及查看CPU、GPU内存使用情况

    Anaconda安装:Anaconda是一个开源的Python发行版本,其包含了conda、Python等180多个科学包及其依赖项。使用Anaconda可以通过创建多个独立的Python环境,避免用户的Python环境安装太多不同版本依赖导致冲突。 Anaconda 是一个免费开源的 Python 和 R 语言的发行版本,用于计算科学,Anac

    2024年02月04日
    浏览(64)
  • ubuntu 如何在docker容器内部查看允许使用的cpu详细信息以及管理员是否限制了docker容器可使用的cpu核心范围

    如题。最近在跑强化学习代码,发现自己的代码跑的好慢好慢好慢,怀疑是可使用的cpu数量被管理员限制了,于是去学习了一下如何查看docker容器中cpu的相关信息。 这将输出关于系统处理器的详细信息,包括每个 CPU 的数量、型号和速度。 在 Docker 容器中,默认情况下,可以

    2024年02月13日
    浏览(48)
  • Linux 查看进程和线程CPU和内存占用情况

    linux 下查看进程内的线程有哪些 首先通过进程名称,假设为SensorDev 找到pid号。 ps -p {pid} -T 可以得到该进程里面运行的各线程的id(表现出来是spid)、对应的线程名称(不超过16字符)、运行时间等; cat /proc/{pid}/status |grep Threads 只能显示线程的个数。 top -p {pid} ,然后按H t

    2024年02月08日
    浏览(61)
  • Linux中该如何查看当前CPU、内存、硬盘占用情况,如何判断当前服务器负载情况

    要查看当前 Linux 系统的 CPU、内存、硬盘占用情况,可以使用以下命令: 查看 CPU 占用情况: 该命令会显示当前系统进程的 CPU 占用情况,以及每个进程占用的 CPU 百分比和内存使用情况等信息。 查看内存占用情况: 该命令会显示当前系统的内存总量、已使用的内存量、空闲

    2024年02月11日
    浏览(72)
  • Linux 查看服务器内存、CPU、网络等占用情况的命令

    1、查看物理CPU个数:cat  2、查看服务器CPU内核个数:cat    每个物理CPU中core的个数(即核数) 3、服务器内存使用情况:free 3.1、缓存清除 如果cached过大接近total数就需要清除缓存了,缓存清除命令:  4、查看服务器的平均负载:top top   --可以查看服务器各个进程情况 u

    2024年02月08日
    浏览(69)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包