当前位置: 首页 > 面试题库 >

为Docker容器设置CPU的绝对限制

羿博延
2023-03-14
问题内容

我正在尝试对Docker容器CPU使用率设置绝对限制。CPU共享概念(docker run -c <shares>)是相对的,但是我想说些类似的话:“让此容器每100毫秒最多使用20毫秒CPU时间。我能找到的最接近的答案是邮件列表中关于cpu.cfs_quota_us和的提示cpu.cfs_period_us。一种使用这些设置时使用docker run

对于LXC支持的Docker(例如pre0.9)或更高版本,我都没有严格的要求,只需要查看使用这些设置的示例即可,也非常欢迎指向相关文档或有用博客的任何链接。我当前正在使用Ubuntu
12.04,在下面可以/sys/fs/cgroup/cpu/docker看到以下选项:

$ ls /sys/fs/cgroup/cpu/docker
cgroup.clone_children  cpu.cfs_quota_us   cpu.stat
cgroup.event_control   cpu.rt_period_us   notify_on_release
cgroup.procs           cpu.rt_runtime_us  tasks
cpu.cfs_period_us      cpu.shares

问题答案:

我相信我已经做到了。我必须使用重新启动Docker守护进程,--exec- driver=lxc因为我找不到将cgroup参数传递给的方法libcontainer。这种方法对我有用:

# Run with absolute limit
sudo docker run --lxc-conf="lxc.cgroup.cpu.cfs_quota_us=50000" -it ubuntu bash

有关带宽限制的必要CFS文档在这里。

我用sysbench简短地确认,这似乎引入了绝对限制,如下所示:

$ sudo docker run --lxc-conf="lxc.cgroup.cpu.cfs_quota_us=10000" --lxc-conf="lxc.cgroup.cpu.cfs_period_us=50000" -it ubuntu bash
root@302e651c0686:/# sysbench --test=cpu --num-threads=1 run
   <snip> 
   total time:                          90.5450s
$ sudo docker run --lxc-conf="lxc.cgroup.cpu.cfs_quota_us=20000" --lxc-conf="lxc.cgroup.cpu.cfs_period_us=50000" -it ubuntu bash
root@302e651c0686:/# sysbench --test=cpu --num-threads=1 run
   <snip> 
    total time:                          45.0423s


 类似资料:
  • 问题内容: 我正在尝试构建一个在一致的条件下运行代码段的系统,我想这可能的一种方式是在具有相同布局的docker容器中运行各种程序,保留相同数量的内存,等等。但是,我似乎无法弄清楚如何保持CPU使用率一致。 我似乎可以找到的最接近的东西是“ cpu共享”,如果我了解文档,它会限制cpu的使用,限制系统上正在运行的其他容器/其他进程以及系统上的可用资源。它们似乎无法将容器限制为绝对的CPU使用量。

  • 本文向大家介绍Docker 限制容器可用的CPU的方式,包括了Docker 限制容器可用的CPU的方式的使用技巧和注意事项,需要的朋友参考一下 默认情况下容器可以使用的主机 CPU 资源是不受限制的。和内存资源的使用一样,如果不对容器可以使用的 CPU 资源进行限制,一旦发生容器内程序异常使用 CPU 的情况,很可能把整个主机的 CPU 资源耗尽,从而导致更大的灾难。本文将介绍如何限制容器可以使用

  • 我在一个物理服务器中有一个VM主机,里面有许多docker容器。 这是我fig.yml的一部分 我希望设置pg容器只使用主机cpu的25%,应用程序只使用主机cpu的50%,以此类推。 我可以用或手动管理链接吗? 在我的例子中,当这个容器中的一个正在运行一个昂贵的任务时,它会影响其他容器的cpu性能。但是,当在同一台物理服务器中,我有其他具有类似部署的VM时,问题会急剧增加。

  • 本文向大家介绍docker CPU限制的实现,包括了docker CPU限制的实现的使用技巧和注意事项,需要的朋友参考一下 1、--cpu=<value>         1)指定一个容器可以使用多少可用的CPU资源,但无法让容器始终在一个或某几个CPU上运行         2)例如:如果主机有2个CPU,设置--cpus="1.5",则可以报称容器醉倒 容纳一半的CPU,相当于设置--cpu-

  • 假设我在Fedora中以的身份登录,我将从Dockerfile构建Docker映像。该映像将包含一个LAMP环境。我有一个Apache虚拟主机(VH)默认文件,如下所示: 作为构建过程的一部分,该文件被复制到图像上的适当位置。 我可以从主机获取登录用户名并动态设置到此VH吗?最后,我希望得到以下结果: 我知道我可以从bash中使用获取当前用户的值,但我如何在Docker构建中将其插入/设置到VH文

  • 我在AWS Fargate服务上的docker容器中启动我们的Spring Boot应用程序,因此一旦CPU消耗达到100%以上,容器就会停止docker OOM--错误杀手 原因:OutofMemoryError:由于内存使用,容器被杀死 在指标上,我们可以看到CPU变得超过100%。似乎经过一段时间的分析,我们发现CPU消耗代码,但我的问题是,CPU如何能超过100%? 是否可以说JVM只使用