2.2. 创​​​建​​​层​​​级​​​并​​​附​​​加​​​子​​​系​​​统​​​

警告

以​​​下​​​步​​​骤​​​覆​​​盖​​​从​​​创​​​建​​​新​​​层​​​级​​​到​​​在​​​其​​​中​​​附​​​加​​​子​​​系​​​统​​​到​​​内​​​容​​​,这​​​些​​​步​​​骤​​​假​​​设​​​还​​​没​​​有​​​在​​​您​​​的​​​系​​​统​​​中​​​配​​​置​​​ cgroup。​​​在​​​这​​​种​​​情​​​况​​​下​​​,这​​​些​​​步​​​骤​​​不​​​会​​​影​​​响​​​系​​​统​​​中​​​的​​​操​​​作​​​。​​​更​​​改​​​有​​​任​​​务​​​的​​​ cgroup 中​​​的​​​可​​​调​​​参​​​数​​​可​​​能​​​会​​​马​​​上​​​影​​​响​​​那​​​些​​​任​​​务​​​。​​​本​​​指​​​南​​​提​​​示​​​您​​​它​​​首​​​次​​​演​​​示​​​更​​​改​​​会​​​影​​​响​​​一​​​个​​​或​​​者​​​多​​​个​​​任​​​务​​​的​​​可​​​调​​​ cgroup 参​​​数​​​。​​​
在​​​已​​​经​​​配​​​置​​​了​​​ cgroup 的​​​系​​​统​​​中​​​(可​​​以​​​是​​​手​​​动​​​配​​​置​​​,或​​​者​​​使​​​用​​​ cgconfig 服​​​务​​​配​​​置​​​),这​​​些​​​命​​​令​​​会​​​失​​​败​​​,除​​​非​​​您​​​首​​​先​​​卸​​​载​​​可​​​影​​​响​​​系​​​统​​​操​​​作​​​的​​​现​​​有​​​层​​​级​​​。​​​不​​​要​​​在​​​产​​​品​​​系​​​统​​​中​​​试​​​验​​​这​​​些​​​步​​​骤​​​。​​​
要​​​创​​​建​​​层​​​级​​​并​​​在​​​其​​​中​​​附​​​加​​​子​​​系​​​统​​​,请​​​作​​​为​​​ root 编​​​辑​​​ /etc/cgconfig.conf 文​​​件​​​的​​​ mount 部​​​分​​​。​​​mount 部​​​分​​​的​​​条​​​目​​​有​​​以​​​下​​​格​​​式​​​:
subsystem = /cgroup/hierarchy;
下​​​一​​​次​​​启​​​动​​​ cgconfig 时​​​,它​​​会​​​创​​​建​​​层​​​级​​​并​​​为​​​其​​​附​​​加​​​子​​​系​​​统​​​。​​​
以​​​下​​​示​​​例​​​创​​​建​​​名​​​为​​​ cpu_and_mem 的​​​层​​​级​​​,并​​​附​​​加​​​ cpu、​​​cpuset、​​​cpuacct 和​​​ memory 子​​​系​​​统​​​。​​​
mount {
    cpuset  = /cgroup/cpu_and_mem;
    cpu     = /cgroup/cpu_and_mem;
    cpuacct = /cgroup/cpu_and_mem;
    memory  = /cgroup/cpu_and_mem;
}

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

您​​​还​​​可​​​以​​​使​​​用​​​ shell 命​​​令​​​和​​​工​​​具​​​创​​​建​​​层​​​级​​​并​​​在​​​其​​​中​​​附​​​加​​​子​​​系​​​统​​​。​​​
作​​​为​​​ root 为​​​该​​​层​​​级​​​创​​​建​​​挂​​​载​​​点​​​。​​​在​​​挂​​​载​​​点​​​中​​​包​​​括​​​ cgroup 名​​​称​​​:
~]# mkdir /cgroup/name
例​​​如​​​:
~]# mkdir /cgroup/cpu_and_mem
下​​​一​​​步​​​,请​​​使​​​用​​​ mount 命​​​令​​​挂​​​载​​​该​​​层​​​级​​​并​​​同​​​时​​​附​​​加​​​一​​​个​​​或​​​者​​​多​​​个​​​系​​​统​​​。​​​例​​​如​​​:
~]# mount -t cgroup -o subsystems name /cgroup/name
其​​​中​​​ subsystems 是​​​使​​​用​​​逗​​​号​​​分​​​开​​​的​​​子​​​系​​​统​​​列​​​表​​​,name 是​​​层​​​级​​​名​​​称​​​。​​​所​​​有​​​可​​​用​​​子​​​系​​​统​​​的​​​简​​​要​​​论​​​述​​​请​​​参​​​考​​​ Red Hat Enterprise Linux 中​​​的​​​可​​​用​​​子​​​系​​​统​​​第 3 章 子​​​系​​​统​​​和​​​可​​​调​​​参​​​数​​​ 中​​​有​​​详​​​细​​​的​​​参​​​考​​​。​​​

例 2.3. 使​​​用​​​ mount 命​​​令​​​附​​​加​​​子​​​系​​​统​​​

在​​​这​​​个​​​示​​​例​​​中​​​,已​​​经​​​有​​​名​​​为​​​ /cgroup/cpu_and_mem 的​​​目​​​录​​​,它​​​可​​​以​​​作​​​为​​​我​​​们​​​所​​​创​​​建​​​层​​​级​​​的​​​挂​​​载​​​点​​​服​​​务​​​。​​​我​​​们​​​将​​​在​​​名​​​为​​​ cpu_and_mem 的​​​层​​​级​​​中​​​附​​​加​​​ cpu、​​​cpuset 和​​​ memory 子​​​系​​​统​​​,并​​​在​​​ /cgroup/cpu_and_mem 中​​​ mount cpu_and_mem 层​​​级​​​:
~]# mount -t cgroup -o cpu,cpuset,memory cpu_and_mem /cgroup/cpu_and_mem
您​​​可​​​以​​​使​​​用​​​ lssubsys [3]命​​​令​​​列​​​出​​​所​​​有​​​可​​​用​​​子​​​系​​​统​​​及​​​其​​​当​​​前​​​挂​​​载​​​点​​​(例​​​如​​​:挂​​​载​​​附​​​加​​​这​​​些​​​子​​​系​​​统​​​的​​​层​​​级​​​的​​​位​​​置​​​)
~]# lssubsys -am
cpu,cpuset,memory /cgroup/cpu_and_mem
net_cls
ns
cpuacct
devices
freezer
blkio
这​​​个​​​输​​​出​​​表​​​示​​​:
  • 在​​​挂​​​载​​​到​​​ /cgroup/cpu_and_mem 的​​​层​​​级​​​中​​​附​​​加​​​子​​​系​​​统​​​ cpu、​​​cpuset 和​​​ memory,且​​​
  • 还​​​没​​​有​​​在​​​任​​​何​​​层​​​级​​​中​​​附​​​加​​​子​​​系​​​统​​​ net_cls、​​​ns、​​​cpuacct、​​​devices、​​​freezer 和​​​ blkio,因​​​缺​​​少​​​相​​​应​​​的​​​挂​​​载​​​点​​​。​​​


[3] lssubsys 是​​​ libcgroup 命​​​令​​​提​​​供​​​的​​​工​​​具​​​之​​​一​​​。​​​您​​​必​​​须​​​安​​​装​​​ libcgroup 方​​​可​​​使​​​用​​​这​​​个​​​工​​​具​​​:如​​​果​​​您​​​无​​​法​​​运​​​行​​​ lssubsys,请​​​参​​​考​​​ 第 2 章 使​​​用​​​控​​​制​​​组​​​群​​​。​​​