2.7. 设​​​置​​​参​​​数​​​

在​​​可​​​修​​​改​​​相​​​关​​​的​​​ cgroup 的​​​用​​​户​​​帐​​​户​​​中​​​运​​​行​​​ cgset 命​​​令​​​设​​​定​​​子​​​系​​​统​​​参​​​数​​​。​​​例​​​如​​​:如​​​果​​​有​​​ /cgroup/cpuset/group1,则​​​请​​​使​​​用​​​以​​​下​​​命​​​令​​​指​​​定​​​这​​​个​​​组​​​群​​​可​​​访​​​问​​​的​​​ CPU:
cpuset]# cgset -r cpuset.cpus=0-1 group1
cgset 的​​​语​​​法​​​为​​​:cgset -r parameter=value path_to_cgroup ,其​​​中​​​:
  • parameter 是​​​要​​​设​​​定​​​的​​​参​​​数​​​,该​​​参​​​数​​​与​​​给​​​定​​​ cgroup 的​​​目​​​录​​​中​​​的​​​文​​​件​​​对​​​应​​​。​​​
  • value 是​​​为​​​参​​​数​​​设​​​定​​​的​​​值​​​
  • path_to_cgroup 是​​​到​​​相​​​对​​​该​​​层​​​级​​​ root 的​​​ cgroup 路​​​径​​​。​​​例​​​如​​​:如​​​果​​​设​​​定​​​ root 组​​​群​​​的​​​参​​​数​​​(如​​​有​​​ /cgroup/cpuacct/ 文​​​件​​​),请​​​运​​​行​​​:
    cpuacct]# cgset -r cpuacct.usage=0 /
    另​​​外​​​,因​​​为​​​ . 与​​​ root 组​​​群​​​相​​​关​​​(即​​​ root 组​​​群​​​本​​​身​​​),您​​​还​​​可​​​运​​​行​​​:
    cpuacct]# cgset -r cpuacct.usage=0 .
    备​​​注​​​:/ 是​​​首​​​选​​​语​​​法​​​。​​​

    注意

    只​​​能​​​为​​​该​​​ root 组​​​群​​​设​​​定​​​少​​​量​​​参​​​数​​​(比​​​如​​​上​​​面​​​的​​​示​​​例​​​中​​​演​​​示​​​的​​​ cpuacct.usage 参​​​数​​​)。​​​这​​​是​​​因​​​为​​​ root 组​​​群​​​拥​​​有​​​所​​​有​​​现​​​有​​​资​​​源​​​,因​​​此​​​定​​​义​​​某​​​些​​​参​​​数​​​限​​​制​​​现​​​有​​​进​​​程​​​就​​​没​​​有​​​任​​​何​​​意​​​义​​​,例​​​如​​​ cpuset.cpu 参​​​数​​​。​​​
    要​​​设​​​定​​​ root 组​​​群​​​的​​​子​​​组​​​群​​​ group1 参​​​数​​​,请​​​运​​​行​​​:
    cpuacct]# cgset -r cpuacct.usage=0 group1
    该​​​组​​​群​​​名​​​称​​​结​​​尾​​​的​​​斜​​​杠​​​(例​​​如​​​:cpuacct.usage=0 group1/)是​​​可​​​选​​​的​​​。​​​
您​​​可​​​以​​​使​​​用​​​ cgset 设​​​定​​​的​​​值​​​可​​​能​​​取​​​决​​​于​​​在​​​具​​​体​​​层​​​级​​​中​​​设​​​定​​​的​​​较​​​大​​​的​​​值​​​。​​​例​​​如​​​:如​​​果​​​将​​​ group1 限​​​制​​​为​​​只​​​能​​​使​​​用​​​系​​​统​​​中​​​的​​​ CPU 0,则​​​您​​​无​​​法​​​将​​​ group1/subgroup1 设​​​定​​​为​​​使​​​用​​​ CPUs 0 和​​​ 1,或​​​者​​​只​​​使​​​用​​​ CPU 1。​​​
您​​​还​​​可​​​以​​​使​​​用​​​ cgset 将​​​一​​​个​​​ cgroup 中​​​的​​​参​​​数​​​复​​​制​​​到​​​另​​​一​​​个​​​现​​​有​​​ cgroup 中​​​,例​​​如​​​:
~]# cgset --copy-from group1/ group2/
使​​​用​​​ cgset 复​​​制​​​参​​​数​​​的​​​语​​​法​​​为​​​:cgset --copy-from path_to_source_cgroup path_to_target_cgroup,其​​​中​​​:
  • path_to_source_cgroup 是​​​相​​​对​​​该​​​层​​​级​​​中​​​ root 组​​​群​​​,到​​​要​​​复​​​制​​​其​​​参​​​数​​​的​​​ cgroup 的​​​路​​​径​​​。​​​
  • path_to_target_cgroup 是​​​相​​​对​​​该​​​层​​​级​​​ root 组​​​群​​​的​​​目​​​的​​​ cgroup 的​​​路​​​径​​​。​​​
请​​​确​​​定​​​您​​​在​​​从​​​一​​​个​​​组​​​群​​​将​​​参​​​数​​​复​​​制​​​到​​​另​​​一​​​个​​​组​​​群​​​前​​​为​​​不​​​同​​​子​​​系​​​统​​​设​​​定​​​强​​​制​​​参​​​数​​​,否​​​则​​​命​​​令​​​会​​​失​​​败​​​。​​​有​​​关​​​强​​​制​​​参​​​数​​​的​​​详​​​情​​​请​​​参​​​考​​​ 重​​​要​​​ - 强​​​制​​​参​​​数​​​。​​​

备​​​用​​​方​​​法​​​

要​​​直​​​接​​​在​​​ cgroup 中​​​设​​​置​​​参​​​数​​​,请​​​使​​​用​​​ echo 命​​​令​​​将​​​值​​​插​​​入​​​相​​​关​​​子​​​系​​​统​​​伪​​​文​​​件​​​。​​​例​​​如​​​:这​​​个​​​命​​​令​​​可​​​将​​​值​​​ 0-1 插​​​入​​​ cgroup group1 的​​​ cpuset.cpus 伪​​​文​​​件​​​中​​​:
~]# echo 0-1 > /cgroup/cpuset/group1/cpuset.cpus
在​​​此​​​设​​​定​​​这​​​个​​​值​​​,则​​​这​​​个​​​ cgroup 中​​​的​​​任​​​务​​​就​​​限​​​制​​​在​​​该​​​系​​​统​​​的​​​ CPU 0 和​​​ 1 中​​​。​​​