cgroups 错误 50016

cgroups 错误 50016

创建问题来自论坛所以我可以在这里回答并留给其他人,因为我花了很长时间来调试这个问题

你好,

我想要测试以下内容:用户 testuser 的进程 bzip2 进入组 cpuhungry,该组只允许使用核心 1,而不允许使用核心 0。

/etc/cgrules.conf

testuser:bzip2   cpuset   cpuhungry/;

/etc/cgconfig.conf

mount {
  cpuset = /mnt/cgroups/cpuset;
}

group cpuhungry {
  cpuset {
      cpuset.cpus = 1
  }
}

我尝试过几次初始化脚本,但我猜它坏了。看起来你需要运行

cgconfigparser -l /etc/cgconfig.conf 首先设置挂载,初始化脚本错过了这个步骤。

通过以下方式启动守护进程: sudo cgrulesengd -d 结果为:

CGroup Rules Engine Daemon log started
Current time: Fri Jul 29 11:32:53 2011

Opened log file: -, log facility: 0, log level: 7
Proceeding with PID 9527
Rule: testuser:bzip2
  UID: 1000
  GID: N/A
  DEST: cpuhungry/
  CONTROLLERS:
    cpuset

Started the CGroup Rules Engine Daemon.
.
.
.
Cgroup change for PID: 9528, UID: 1000, GID: 1000, PROCNAME: /bin/bzip2 FAILED! (Error Code: 50016)
GID Event: PID = 1950, tGID = 1950, rGID = 0, eGID = 122

错误代码 50016 当然没有记录,谷歌搜索中也没有弹出任何内容。

任何想法如何解决这一问题?

答案1

导致此错误的原因是cpuset.mems资源未填充,要解决此问题,只需使用以下任一方法填充它即可

跑步

echo 0 > /sys/fs/cgroup/cpuset/cpuhungry/cpuset.mems

或者

cgset -r cpuset.mems=0 cpuhungry

或者更新 /etc/cgconfig.conf

mount {
  cpuset = /mnt/cgroups/cpuset;
}

group cpuhungry {
  cpuset {
      cpuset.cpus = 1
      cpuset.mems = 0
  }
}

另请参见此处

相关内容