Docker容器CPU使用率监控

2024-05-02

根据 docker 的文档。 我们可以通过以下方式获取 docker 容器的 CPU 使用率码头工人统计命令。 CPU % 列将给出容器正在使用的主机 CPU 的百分比。

假设我限制容器使用 50% 的主机单个 CPU。我可以通过 --cpus=0.5 选项指定 50% 单 CPU 核心限制https://docs.docker.com/config/containers/resource_constraints/ https://docs.docker.com/config/containers/resource_constraints/

我们如何通过任何 docker 命令获取容器在允许的 CPU 核心之外的 CPU% 使用率? 例如。 50% 的单 CPU 核心中,99% 已被使用。

有什么办法可以用cadvisor或prometheus来获取它吗?


我们如何通过任何 docker 命令获取容器在允许的 CPU 核心之外的 CPU% 使用率?例如。 50% 的单 CPU 核心中,99% 已被使用。

Docker 有docker stats显示 CPU/内存使用情况和其他一些统计信息的命令:

CONTAINER ID   NAME                                   CPU %     MEM USAGE / LIMIT     MEM %     NET I/O          BLOCK I/O         PIDS
c43f085dea8c   foo_test.1.l5haec5oyr36qdjkv82w9q32r   0.00%     11.15MiB / 100MiB     11.15%    7.45kB / 0B      3.29MB / 8.19kB   9

虽然它确实显示了关于开箱即用限制的内存使用情况,但 CPU 还没有这样的功能。可以使用动态计算值的脚本来解决这个问题,但我宁愿选择第二个选项。

有什么办法可以用cadvisor或prometheus来获取它吗?

就在这里:

irate(container_cpu_usage_seconds_total{cpu="total"}[1m]) 
/ ignoring(cpu) 
(container_spec_cpu_quota/container_spec_cpu_period)

第一行是典型的irate计算容器已使用多少 CPU 秒的函数。它带有一个标签cpu="total",第二部分没有,这就是为什么有ignoring(cpu).

底线计算允许容器使用多少个 CPU 核心。有两个指标:

container_spec_cpu_quota- 实际配额值。该值是根据您设置为限制的 CPU 核心分数乘以计算得出的container_spec_cpu_period.

container_spec_cpu_period- 来自CFS调度程序 https://www.kernel.org/doc/Documentation/scheduler/sched-bwc.txt它就像配额值的单位。

我知道一开始可能很难理解,请允许我用一个例子来解释:

考虑一下你有container_spec_cpu_period设置为默认值,即 100,000 微秒,容器 CPU 限制设置为半个核心 (0.5)。在这种情况下:

container_spec_cpu_period 100,000
container_spec_cpu_quota  50,000  # =container_spec_cpu_period*0.5

将 CPU 限制设置为两个核心后,您将得到以下结果:

container_spec_cpu_quota  200,000

因此,通过除以另一个,我们可以得到 CPU 核心的比例,然后在另一个除法中使用该比例来计算使用了多少限制。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Docker容器CPU使用率监控 的相关文章

  • docker-compose mysql 容器拒绝访问 wordpress 容器

    我遇到 mysql 5 7 容器拒绝访问 wordpress 容器的问题 我正在使用 docker compose 并且在 Mac OSX 上运行 docker Docker 应该是可用的最新版本 这是我的 docker compose y
  • 在 Windows 上使用 docker compose 进行卷绑定

    我最近在 Windows 10 上升级了 Docker Toolbox 现在我的卷挂载不再起作用 我已经尝试了一切 这是当前的挂载路径 volumes C Users Joey Desktop backend var www html 我收
  • 为单个方法引用大 DLL

    我想在 C 中使用大型类库 dll 中的单个方法 是否有性能或其他方面的缺点 我应该使用反射工具 读取 方法代码并将其复制粘贴到我的项目中吗 更新 硬盘空间不是问题 我的应用程序是网络应用程序 是否有性能或其他方面的缺点 唯一真正重要的是可
  • 子查询与连接

    我重构了从另一家公司继承的应用程序的一个缓慢部分 以使用内部联接而不是子查询 例如 WHERE id IN SELECT id FROM 重构后的查询运行速度提高了约 100 倍 50 秒到 0 3 我预计会有改进 但谁能解释为什么它如此剧
  • 如何在CentOS7中更改docker守护进程根目录

    我在 CentOS7 上运行 docker 我想更改我的基本目录 var lib docker to data docker I found this https docs docker com engine reference comma
  • 通过 kubernetes 标签或注释对 prometheus 目标进行分组?

    我有两个关于普罗米修斯的问题 我使用这个舵图 https artifacthub io packages helm prometheus community prometheus modal values https artifacthub
  • 使用“mvncompilejib:build”推送到 Docker 注册表失败

    我正在尝试使用以下命令构建并将我的 docker 映像部署到私有注册表谷歌联合投资银行Maven 插件 但是 它因访问私有注册表时出现问题而失败 我已经安装了Docker 桌面 v19 03 1 on my Windows 10机器 接下来
  • 确定向量中是否存在元素的最有效方法

    我有几种算法取决于确定元素是否存在于向量中的效率 在我看来 这 in 这相当于is element 应该是最有效的 因为它只返回一个布尔值 在测试了几种方法之后 令我惊讶的是 这些方法是迄今为止效率最低的 以下是我的分析 随着向量大小的增加
  • 如何禁用docker容器的root访问权限?

    我们有离岸开发人员 他们希望在本地运行我们的服务器 但出于安全原因 我们不想向他们提供服务器代码 所以一个解决方案是他们运行一个 Docker 容器 这是我们服务器的独立版本 所以他们这边没有复杂的设置 问题在于 始终可以以 root 身份
  • SQL Server 不使用索引将日期时间与非空进行比较

    我有一个与其他任何表都不相关的简单表 它有一个非 PK 列 它是一个日期 我已经为该列创建了一个非聚集索引 如果我提出这个查询 select from table where datecolumn is not null 但如果我删除 no
  • node-mongodb-native的插入性能

    我正在使用 MongoDB 测试 Node js 的性能 我知道其中每一个都很好 彼此独立 但我正在尝试一些测试来感受它们 我遇到了这个问题 但无法确定来源 问题 我正在尝试在单个 Node js 程序中插入 1 000 000 条记录 它
  • Docker 容器 - 如何配置使其在 vagrant 中运行时获得可行的 IP 地址?

    Docker www docker io 看起来棒极了 然而 安装 VirtualBox 后 Vagrant 最后是 Mac 上的 Docker 我发现无法从另一台计算机 或从 Mac 上的终端会话 访问 Docker 容器中运行的服务 我
  • 大数组上的 SSE 性能较慢

    我是 SSE 编程新手 所以我希望有人可以帮助我 我最近使用 GCC SSE 内在函数实现了一个函数来计算 32 位整数数组的总和 下面给出了我的实现代码 int ssum const int d unsigned int len stat
  • 使用 tc 限制 Docker 容器的传出网络带宽

    我正在尝试对 Docker 容器进行带宽限制 为了限制下行带宽 我可以先找到容器的veth接口并使用tc tc qdisc add dev vethpair1 root tbf rate 1mbit latency 50ms burst 1
  • jQuery - 提高处理 XML 时的选择器性能

    我正在处理一个 XML 文件 当使用 XPath 样式选择器选择节点时 该文件的性能非常慢 这是运行特别慢的部分代码 for i 0 i
  • Docker和--userns-remap,如何管理卷权限以在主机和容器之间共享数据?

    在 Docker 中 在容器内创建的文件在从主机检查它们时往往具有不可预测的所有权 默认情况下 卷上文件的所有者是 root uid 0 但一旦非 root 用户帐户参与容器并写入文件系统 从主机的角度来看 所有者或多或少会变得随机 当您需
  • JavaFX 中 WebView 的性能

    我有一个 HTML5 UI 和一个 Java 后端 并且希望避免在纯 java 中重建 HTML ui 所以我的想法是运行本地 Web 服务器并使用 WebView 在 本机 窗口中呈现它 解决方案似乎是使用可以嵌入到 swing 中的 J
  • 优化 LATERAL join 中的慢速聚合

    在我的 PostgreSQL 9 6 2 数据库中 我有一个查询 该查询根据一些股票数据构建计算字段表 它为表中的每一行计算 1 到 10 年的移动平均窗口 并将其用于周期性调整 具体来说 CAPE CAPB CAPC CAPS 和 CAP
  • docker build --no-cache 是否构建不同的层?

    几个月前 我决定使用以下命令设置我的项目构建 docker 镜像的 CIno cacheflag 我认为最好不要冒险让 docker 使用旧的缓存层 我现在才意识到 我的图像各层的 sha 总是不同的 即使新构建的图像应该生成与之前构建的相
  • linq2sql,存储库模式 - 如何从两个或多个表查询数据?

    我使用存储库模式 和 linq2sql 作为数据访问 并拥有例如 ProductsRep 和 CustomersRep 在非常简单的场景中 数据库有两个表 产品 产品 ID 客户 ID 产品名称 日期 和顾客 客户 ID 名字 姓氏 每个存

随机推荐

  • 使用 $location 重定向到 AngularJS 中的新页面

    我正在使用以下 AngularJS location 进行测试 我不明白这有什么问题 只是想检查重定向是否有效 HTML Hello name
  • 求分数 a/b 的小数点后第 k 位,其中 a、b、k 是非常大的整数(小于 10e18)

    我的任务是找到分数 a b 小数点后第 k 位的数字 昨天我发现了这个算法 为了获取小数点后的任何数字 我生成一个名为 rem 的变量并进行循环 for int i 1 i lt k 1 i rem a b a rem 10 cout lt
  • 如何使用 OpenGL ES 2.0 旋转对象?

    在 OpenGL ES 1 1 中 您可以使用glRotatef 旋转模型 但 OpenGL ES 2 0 中不存在该函数 那么 在OpenGL ES 2 0中如何进行旋转呢 为了遵循克里斯蒂安所说的 您需要自己跟踪模型视图矩阵并操纵它来执
  • 如何在Vite配置中更改antd主题?

    是一个由Vite和React antd组成的项目 我想在 vite config ts 中动态处理 antd 主题 如果您能告诉我如何修改 React 组件中的 less modifyVars 值 我将不胜感激 这是当前屏幕 光状态 htt
  • Amazon DynamoDB 使用无服务器修改结构

    修改 DynamoDB 表结构的最佳方法是什么 由于备份而删除它没有问题 我有一个只有哈希键的表 我必须为表添加一个排序键 当我部署堆栈时 我收到此错误 错误 CloudFormation 模板无效 模板格式错误 模板的资源块中存在未解析的
  • MySQL存储过程错误意外字符“:”

    我有以下语句来创建存储过程 但我不断收到 位置 835 处出现意外字符 错误 语句中唯一的冒号位于 start loop 循环中 为什么我会收到此错误以及如何修复 DELIMITER CREATE DEFINER root localhos
  • 批处理文件中的 Powershell - 如何转义元字符?

    运行 Windows 7 当我复制文件在例程期间到外部磁盘文件备份 我使用 Powershell v2 从批处理文件 在副本文件上重新创建原始文件的所有时间戳 以下代码在大多数情况下都能成功运行 但并非总是如此 SET file 1 SET
  • Laravel Eloquent - 附加与同步

    有什么区别attach and sync 在 Laravel 4 的 Eloquent ORM 中 我试图环顾四周 但什么也没找到 附 处理多对多关系时插入相关模型 不需要数组参数 Example user User find 1 user
  • 如何在java中使用模式匹配器?

    假设字符串是我想提取xyz从字符串中出来 我用了 Pattern titlePattern Pattern compile lttitle gt s s lt title gt Matcher titleMatcher titlePatte
  • 从 s3 静态网站中的按钮触发 lambda

    我有一个静态网站 其中有一个包含几个字段的表单 CloudFront 位于将流量路由到站点的存储桶的前面 所涉及的表单自然有一个 POST 到 的按钮 有没有办法让按钮上的点击触发带有表单字段内容的 lambda 函数 提前致谢 API G
  • 破坏/分解函数的函数

    我以前有过 here https stackoverflow com questions 4920610 c class function in assembly 已经表明 C 函数不容易用汇编表示 现在我有兴趣以一种或另一种方式阅读它们
  • 在 WPF 中创建复合位图图像

    我有三个位图图像 我想将它们拼接在一起以创建合成图像 要拼接在一起的三个图像按以下方式对齐 这些图像的类型为 System Windows Media Imaging BitmapImage 我看过以下内容solution https st
  • 如何在 C++ 中的特定坐标处将字符串打印到控制台?

    我正在尝试在控制台中的指定坐标处打印字符 到目前为止我一直在使用非常丑陋的printf 033 d dH s n 2 2 str 但我只想问 C 是否有其他方法可以做到这一点 问题甚至不在于它丑陋 当我试图让自己成为一个更漂亮的函数时 问题
  • 尝试旋转和变换 SVG 路径 - 我需要三角学计算吗?

    我正在尝试使用鼠标 SVG 路径进行操作 该路径代表电子电阻器的符号 该符号需要使用 引线 末端进行操作 如果您可以想象真实的电阻器 因此 我试图实现拖动第一个点周围 第二个点仍然存在 并且当在新坐标上拖动第一个点时 路径的所有点都按比例表
  • python列表理解和extend() [重复]

    这个问题在这里已经有答案了 深入学习 Python 2 7 1 但未能理解这一点 几个小时 gt gt gt a 1 2 gt gt gt b 3 4 gt gt gt gt gt gt a extend b 0 gt gt gt a 1
  • 将日期时间模型属性显示为短日期时间字符串

    我是 MVC2 新手 并且遇到格式问题 我的 Employee 模型中有一个 DateTime 属性 我希望与短日期时间一起显示 然而 这似乎不是正确的方法 1 div class editor field 2 3 4 div 第 2 行抛
  • Rails 数据库默认值和布尔字段的模型验证

    在 Rails 模型中我有一个属性is subscriber 当我构建数据库迁移以将此列添加到数据库时 我指定默认值为 false t boolean is subscriber default gt false 我还在模型中指定了该属性需
  • 如何在 Powershell 中为特定命令设置别名?

    有一个命令我经常输入 java jar foo param1 param2 param n 如何创建命令别名来运行此命令 如下所示 launch foo param3 where launch foo被翻译成完整的命令 你必须创建一个函数
  • 表视图重新加载部分崩溃

    我有一个包含 4 个部分的表格视图 每个部分有 1 2 个表格视图单元格 第一个单元格有一个 uiswitch 作为附件视图 控制应用程序的颜色主题 在白天模式和夜间模式之间切换 一旦按下开关 就会调用一个函数 更改导航栏的颜色和背景颜色
  • Docker容器CPU使用率监控

    根据 docker 的文档 我们可以通过以下方式获取 docker 容器的 CPU 使用率码头工人统计命令 CPU 列将给出容器正在使用的主机 CPU 的百分比 假设我限制容器使用 50 的主机单个 CPU 我可以通过 cpus 0 5 选