2.7. 設​​​定​​​參​​​數​​​

請​​​以​​​一​​​組​​​含​​​有​​​權​​​限​​​的​​​使​​​用​​​者​​​帳​​​號​​​執​​​行​​​ cgset 指​​​令​​​來​​​設​​​置​​​子​​​系​​​統​​​參​​​數​​​,以​​​修​​​改​​​相​​​關​​​的​​​控​​​制​​​群​​​組​​​。​​​比​​​方​​​說​​​,若​​​ /cgroup/cpuset/group1 存​​​在​​​的​​​話​​​,請​​​以​​​下​​​列​​​指​​​令​​​來​​​指​​​定​​​此​​​群​​​組​​​擁​​​有​​​其​​​存​​​取​​​權​​​限​​​的​​​ CPU:
cpuset]# cgset -r cpuset.cpus=0-1 group1
cgset 的​​​語​​​法​​​為​​​:cgset -r 參​​​數​​​=值​​​ 控​​​制​​​群​​​組​​​路​​​徑​​​ ,而​​​:
  • 參​​​數​​​代​​​表​​​欲​​​設​​​置​​​的​​​參​​​數​​​,這​​​與​​​控​​​制​​​群​​​組​​​目​​​錄​​​中​​​的​​​檔​​​案​​​相​​​應​​​
  • 值​​​為​​​參​​​數​​​的​​​值​​​
  • path_to_cgroup 代​​​表​​​與​​​階​​​層​​​ root 相​​​關​​​的​​​控​​​制​​​群​​​組​​​之​​​路​​​徑​​​。​​​比​​​方​​​說​​​,若​​​要​​​設​​​置​​​ root 群​​​組​​​(如​​​果​​​ /cgroup/cpuacct 存​​​在​​​的​​​話​​​)的​​​參​​​數​​​,請​​​執​​​行​​​:
    cpuacct]# cgset -r cpuacct.usage=0 /
    此​​​外​​​,因​​​為​​​ . 與​​​ root 群​​​組​​​相​​​關​​​(也​​​就​​​是​​​ root 群​​​組​​​本​​​身​​​),因​​​此​​​您​​​亦​​​可​​​執​​​行​​​:
    cpuacct]# cgset -r cpuacct.usage=0 .
    然​​​而​​​,請​​​注​​​意​​​ / 為​​​建​​​議​​​的​​​語​​​法​​​。​​​

    注意

    只​​​有​​​一​​​小​​​部​​​份​​​的​​​參​​​數​​​可​​​以​​​用​​​來​​​設​​​定​​​ root 群​​​組​​​(例​​​如​​​上​​​述​​​範​​​例​​​所​​​顯​​​示​​​的​​​ cpuacct.usage)。​​​這​​​是​​​因​​​為​​​ root 群​​​組​​​擁​​​有​​​所​​​有​​​的​​​現​​​有​​​資​​​源​​​,因​​​此​​​透​​​過​​​定​​​義​​​某​​​些​​​參​​​數​​​(例​​​如​​​ cpuset.cpu 參​​​數​​​)以​​​限​​​制​​​現​​​有​​​程​​​序​​​,是​​​沒​​​有​​​道​​​理​​​的​​​。​​​
    若​​​要​​​設​​​置​​​ group1 參​​​數​​​(也​​​就​​​是​​​ root 群​​​組​​​的​​​一​​​個​​​子​​​群​​​組​​​),請​​​執​​​行​​​:
    cpuacct]# cgset -r cpuacct.usage=0 group1
    群​​​組​​​名​​​稱​​​後​​​的​​​斜​​​線​​​(例​​​如​​​ cpuacct.usage=0 group1/)乃​​​非​​​必​​​要​​​的​​​。​​​
您​​​可​​​以​​​ cgset 設​​​置​​​的​​​值​​​取​​​決​​​於​​​特​​​定​​​階​​​層​​​中​​​上​​​層​​​所​​​設​​​置​​​的​​​值​​​。​​​比​​​方​​​說​​​,若​​​ group1 被​​​限​​​制​​​為​​​在​​​一​​​部​​​系​​​統​​​上​​​只​​​使​​​用​​​ CPU 0,您​​​無​​​法​​​設​​​置​​​ group1/subgroup1 來​​​使​​​用​​​ CPUs 0 和​​​ 1,或​​​是​​​只​​​使​​​用​​​ CPU 1。​​​
您​​​亦​​​可​​​使​​​用​​​ cgset 來​​​將​​​一​​​個​​​控​​​制​​​群​​​組​​​中​​​的​​​參​​​數​​​複​​​製​​​至​​​另​​​一​​​個​​​既​​​有​​​的​​​控​​​制​​​群​​​組​​​中​​​。​​​例​​​如​​​:
~]# cgset --copy-from group1/ group2/
透​​​過​​​ cgset 來​​​複​​​製​​​參​​​數​​​的​​​語​​​法​​​為​​​:cgset --copy-from path_to_source_cgroup path_to_target_cgroup,而​​​:
  • path_to_source_cgroup 代​​​表​​​與​​​階​​​層​​​之​​​ root 群​​​組​​​相​​​關​​​,欲​​​複​​​製​​​其​​​參​​​數​​​的​​​控​​​制​​​群​​​組​​​之​​​路​​​徑​​​
  • path_to_target_cgroup 是​​​目​​​的​​​地​​​控​​​制​​​群​​​組​​​的​​​路​​​徑​​​,與​​​階​​​層​​​之​​​ root 群​​​組​​​相​​​關​​​
在​​​您​​​由​​​一​​​個​​​群​​​組​​​複​​​製​​​參​​​數​​​至​​​另​​​一​​​群​​​組​​​前​​​,請​​​確​​​認​​​各​​​子​​​系​​​統​​​的​​​所​​​有​​​必​​​要​​​參​​​數​​​皆​​​已​​​設​​​置​​​,否​​​則​​​指​​​令​​​將​​​會​​​失​​​敗​​​。​​​欲​​​知​​​必​​​要​​​參​​​數​​​的​​​詳​​​細​​​資​​​訊​​​,請​​​參​​​閱​​​〈​​​重​​​要​​​ —​​​ 必​​​要​​​的​​​參​​​數​​​〉​​​。​​​

額​​​外​​​方​​​式​​​

若​​​要​​​直​​​接​​​設​​​置​​​一​​​個​​​控​​​制​​​群​​​組​​​中​​​的​​​子​​​系​​​統​​​的​​​參​​​數​​​,請​​​透​​​過​​​使​​​用​​​ echo 指​​​令​​​來​​​將​​​值​​​插​​​入​​​至​​​相​​​聯​​​的​​​子​​​系​​​統​​​偽​​​檔​​​案​​​中​​​。​​​比​​​方​​​說​​​,這​​​項​​​指​​​令​​​會​​​將​​​ 0-1 這​​​個​​​值​​​插​​​入​​​ group1 控​​​制​​​群​​​組​​​的​​​ cpuset.cpus 偽​​​檔​​​案​​​中​​​:
~]# echo 0-1 > /cgroup/cpuset/group1/cpuset.cpus
當​​​使​​​用​​​了​​​這​​​個​​​值​​​時​​​,此​​​控​​​制​​​群​​​組​​​中​​​的​​​工​​​作​​​會​​​被​​​限​​​制​​​僅​​​可​​​使​​​用​​​系​​​統​​​上​​​的​​​ CPU 0 和​​​ 1。​​​