2012/4/28 Mikhail Kuzminsky <mikky_m@mail.ru>:
Я планирую работать с cgroups, но из некоторых выдаваемых соответствующими командами результатов обнаружил, что какие-то базовые вещи оказались мне непонятны.
Какие иерархии контрольных групп (кроме systemd) имеются после загрузки 12.1 (c default-ядром) ? Что, подсистема cpu,cpuacct "управляет" некоторыми службами systemd ?
Ниже я привожу соответствующие данные для моего компьютера.
lscgroups:
name=systemd:/ name=systemd:/user name=systemd:/user/root name=systemd:/user/root/1 name=systemd:/system name=systemd:/system/console-kit-daemon.service name=systemd:/system/sshd.service ... name=systemd:/system/syslog.service name=systemd:/system/sys-fs-fuse-connections.mount name=systemd:/system/windows-C.mount name=systemd:/system/home.mount name=systemd:/system/fsck@.service name=systemd:/system/dev-disk-by\x2did-ata\x2dWDC_WD5000AZRX\x2d00A8LB0_WD\x2dWMC1U0240739\x2dpart5.swap name=systemd:/system/systemd-stdout-syslog-bridge.service name=systemd:/system/bootsplash-startup.service name=systemd:/system/sys-kernel-debug.mount ... name=systemd:/system/var-lock.mount name=systemd:/system/udev.service cpuset:/ cpu,cpuacct:/ cpu,cpuacct:/system cpu,cpuacct:/system/console-kit-daemon.service ... cpu,cpuacct:/system/syslog.service cpu,cpuacct:/system/sys-fs-fuse-connections.mount cpu,cpuacct:/system/windows-C.mount cpu,cpuacct:/system/home.mount cpu,cpuacct:/system/fsck@.service cpu,cpuacct:/system/dev-disk-by\x2did-ata\x2dWDC_WD5000AZRX\x2d00A8LB0_WD\x2dWMC1U0240739\x2dpart5.swap cpu,cpuacct:/system/systemd-stdout-syslog-bridge.service cpu,cpuacct:/system/bootsplash-startup.service cpu,cpuacct:/system/sys-kernel-debug.mount ... cpu,cpuacct:/system/var-lock.mount cpu,cpuacct:/system/udev.service memory:/ devices:/ freezer:/ net_cls:/ blkio:/ perf_event:/
============================================ содержимое /proc/cgroups
#subsys_name hierarchy num_cgroups enabled cpuset 2 1 1 cpu 3 26 1 cpuacct 3 26 1 memory 4 1 1 devices 5 1 1 freezer 6 1 1 net_cls 7 1 1 blkio 8 1 1 perf_event 9 1 1 ================================================== cодержимое /proc/mounts (вырезка)
... cgroup /sys/fs/cgroup/systemd cgroup ... cgroup /sys/fs/cgroup/cpuset cgroup rw,nosuid,nodev,noexec,relatime,cpuset 0 0 cgroup /sys/fs/cgroup/cpu,cpuacct cgroup rw,nosuid,nodev,noexec,relatime,cpuacct,cpu 0 0 cgroup /sys/fs/cgroup/memory cgroup rw,nosuid,nodev,noexec,relatime,memory 0 0 cgroup /sys/fs/cgroup/devices cgroup rw,nosuid,nodev,noexec,relatime,devices 0 0 cgroup /sys/fs/cgroup/freezer cgroup rw,nosuid,nodev,noexec,relatime,freezer 0 0 cgroup /sys/fs/cgroup/net_cls cgroup rw,nosuid,nodev,noexec,relatime,net_cls 0 0 cgroup /sys/fs/cgroup/blkio cgroup rw,nosuid,nodev,noexec,relatime,blkio 0 0 cgroup /sys/fs/cgroup/perf_event cgroup rw,nosuid,nodev,noexec,relatime,perf_event 0 0 ============================================
lxc-checkconfig (вырезка)
Control groups ---Cgroup: enabled Cgroup clone_children flag: enabled Cgroup device: enabled Cgroup sched: enabled Cgroup cpu account: enabled Cgroup memory controller: enabled Cgroup cpuset: enabled
Удалось ли добавить свои правила через /etc/cgconfig.conf? У меня упорно не хочет работать. Пока методом тыка по вырезкам из инета делаю, знакомлюсь. Задача: органичить определенному юзеру память cat /etc/cgrules.conf #<user> <controllers> <destination> # #john cpu usergroup/faculty/john/ #john:cp cpu usergroup/faculty/john/cp #@student cpu,memory usergroup/student/ #peter cpu test1/ #% memory test2/ #@root * admingroup/ user cpu,cpuacct,memory user #* * default/ # End of file cat /etc/cgconfig.conf mount { cpu = /cgroup/cpu_and_mem; cpuacct = /cgroup/cpu_and_mem; memory = /cgroup/cpu_and_mem; } group user { perm { task { uid = user; gid = users; } admin { uid = root; gid = root; } } cpu { cpu.shares=500; } cpuacct { cpuacct.usage=0; } memory { memory.limit_in_bytes=100M; memory.memsw.limit_in_bytes=200M; } } при старте получаю: /etc/init.d/cgconfig start redirecting to systemctl Job failed. See system logs and 'systemctl status' for details. cat /var/log/messages Oct 10 16:35:35 linux-ni63 cgconfig[3352]: Starting service cgconfigLoading configuration file /etc/cgconfig.conf failed Oct 10 16:35:35 linux-ni63 cgconfig[3352]: Cgroup mounting failed Oct 10 16:35:35 linux-ni63 cgconfig[3352]: Failed to parse /etc/cgconfig.conf..failed Oct 10 16:35:35 linux-ni63 cgconfig[3352]: ..done Oct 10 16:35:35 linux-ni63 systemd[1]: cgconfig.service: control process exited, code=exited status=1 Oct 10 16:35:35 linux-ni63 systemd[1]: Unit cgconfig.service entered failed state. # mount | grep cgroup tmpfs on /sys/fs/cgroup type tmpfs (rw,nosuid,nodev,noexec,relatime,size=510244k,nr_inodes=127561,mode=755) cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,release_agent=/lib/systemd/systemd-cgroups-agent,name=systemd) cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset) cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpuacct,cpu) cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory) cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices) cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer) cgroup on /sys/fs/cgroup/net_cls type cgroup (rw,nosuid,nodev,noexec,relatime,net_cls) cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio) cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event) Может есть какая инсрукция в примере для opensuse 12.1 или совет?