gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 00:58:03 25 4
gpt4 key购买 nike

我正在尝试对 Docker 容器 CPU 使用设置绝对限制。 CPU 份额的概念( docker run -c <shares> )是相对的,但我想说的是“让这个容器每 100 毫秒最多使用 20 毫秒的 CPU 时间。我能找到的最接近的答案是 hint from the mailing list 关于使用 cpu.cfs_quota_uscpu.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

最佳答案

我相信我已经开始工作了。我不得不用 --exec-driver=lxc 重新启动我的 Docker 守护进程正如我
找不到将 cgroup 参数传递给 libcontainer 的方法.这种方法对我有用:

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

有关带宽限制的必要 CFS 文档是 here .

我向 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 - 为 Docker 容器设置 CPU 的绝对限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26348816/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com