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

weixin_38082570 2019-09-12 01:38:18
我正在尝试设置Docker容器CPU使用率的绝对限制. CPU共享概念(docker run -c< shares>)是相对的,但我想说的是“让这个容器每100ms最多使用20ms的CPU时间.我能找到的最接近的答案是使用hint from the mailing list 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
...全文
232 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_38107053 2019-09-12
  • 打赏
  • 举报
回复
我相信我已经做到了这一点.我必须用–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

433

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧