首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >cpuset.cpus和cpuset.mems的cpu.shares与memory.limit_in_bytes的混合

cpuset.cpus和cpuset.mems的cpu.shares与memory.limit_in_bytes的混合
EN

Stack Overflow用户
提问于 2018-03-03 16:48:48
回答 1查看 945关注 0票数 1

我对cgroup的工作方式有些困惑。这是我对群体限制的理解..。

  • cpuset.cpus绑定到特定的核心
  • cpuset.mems绑定到特定的NUMA节点
  • cpu.shares告诉调度程序提供一定百分比的CPU处理能力。
  • memory.limit_in_bytes限制进程可用的内存量。

那么,当您将进程绑定到特定的cpuset、cpu和内存时会发生什么呢?一些例子..。

  1. 如果NUMA节点绑定到总8GB,但我将内存限制设置为12 8GB,则会发生什么情况?
  2. 如果我绑定到核心0和1,但将cpu共享设置为1024中的2,会发生什么?

另外,我如何知道我在cpuset中引用的核/NUMA节点的细节/规范?

EN

回答 1

Stack Overflow用户

发布于 2018-03-27 13:03:59

也有同样的困惑。但是根据我的测试,如果cpuset.cpu_exclusive=0(内核是共享的),cpu.shares和cpuset.cpus都能工作。测试如下。

  1. 创建两个cgroup: cputest1和cputest2(根下的相同层次结构)
  2. 对于cputest1和cputest2,请做: 回声0,2 > cpuset.cpus回波0> cpuset.mems
  3. 新航站楼a cd /sys/fs/cgroup/cpuset/cputest1回送$$ >> cgroup.proc,而:;进行回波测试> /dev/null;已完成

新终端b

代码语言:javascript
复制
cd /sys/fs/cgroup/cpuset/cputest1
echo $$ >> cgroup.proc
while :; do echo test > /dev/null; done

新航站楼

代码语言:javascript
复制
cd /sys/fs/cgroup/cpuset/cputest2
echo $$ >> cgroup.proc
while :; do echo test > /dev/null; done

运行顶部,有三个bash任务,每个任务的cpu使用率几乎相同(60%-70%),总数为200%。

  1. A航站楼
代码语言:javascript
复制
echo $$ >> /sys/fs/cgroup/cpu/cputest1/cgroup.proc
while :; do echo test > /dev/null; done

终端b

代码语言:javascript
复制
echo $$ >> /sys/fs/cgroup/cpu/cputest1/cgroup.proc
while :; do echo test > /dev/null; done

C终端

代码语言:javascript
复制
echo $$ >> /sys/fs/cgroup/cpu/cputest2/cgroup.proc
while :; do echo test > /dev/null; done

echo 2/2048/1024 > /sys/fs/cgroup/cpu/cputest1/cpu.shares
echo 2048/2/1024 > /sys/fs/cgroup/cpu/cputest2/cpu.shares

运行顶部以查看三个bash任务之间的cpu使用情况。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49086662

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档