Cgroups : インストール2017/08/30 |
Linux カーネル搭載のコントロールグループ (Cgroups)
を利用することにより、特定のリソースの利用制限やモニタリング、隔離等が可能となります。
|
|
[1] | コントロールグループを利用するためのパッケージをインストールして起動します。 |
[root@dlp ~]#
[root@dlp ~]# yum -y install libcgroup libcgroup-tools systemctl start cgconfig [root@dlp ~]# systemctl enable cgconfig
|
[2] | Systemd が コントロールグループを利用している関係で libcgroup パッケージはデフォルトでもインストールされ存在していますが、[/sys/fs/cgroup] 配下には以下のようにサブシステム毎にリソースコントローラーが自動マウントされています。 コントロールグループでのサブシステムとは、CPU やメモリーなどの単一のリソースを表します。 |
[root@dlp ~]# ll /sys/fs/cgroup total 0 drwxr-xr-x. 2 root root 0 Aug 30 09:23 blkio lrwxrwxrwx. 1 root root 11 Aug 30 09:23 cpu -> cpu,cpuacct lrwxrwxrwx. 1 root root 11 Aug 30 09:23 cpuacct -> cpu,cpuacct drwxr-xr-x. 2 root root 0 Aug 30 09:23 cpu,cpuacct drwxr-xr-x. 2 root root 0 Aug 30 09:23 cpuset drwxr-xr-x. 4 root root 0 Aug 30 09:23 devices drwxr-xr-x. 2 root root 0 Aug 30 09:23 freezer drwxr-xr-x. 2 root root 0 Aug 30 09:23 hugetlb drwxr-xr-x. 2 root root 0 Aug 30 09:23 memory lrwxrwxrwx. 1 root root 16 Aug 30 09:23 net_cls -> net_cls,net_prio drwxr-xr-x. 2 root root 0 Aug 30 09:23 net_cls,net_prio lrwxrwxrwx. 1 root root 16 Aug 30 09:23 net_prio -> net_cls,net_prio drwxr-xr-x. 2 root root 0 Aug 30 09:23 perf_event drwxr-xr-x. 2 root root 0 Aug 30 09:23 pids drwxr-xr-x. 4 root root 0 Aug 30 09:23 systemd |
|
[3] | コントロールグループは以下のようにして確認可能です。 以下は最小構成で OSインストールした後のデフォルトの状態です。 |
[root@dlp ~]# lscgroup cpuset:/ net_cls,net_prio:/ blkio:/ cpu,cpuacct:/ perf_event:/ memory:/ pids:/ freezer:/ hugetlb:/ devices:/ devices:/user.slice devices:/system.slice devices:/system.slice/rsyslog.service devices:/system.slice/tuned.service devices:/system.slice/sshd.service devices:/system.slice/postfix.service devices:/system.slice/polkit.service devices:/system.slice/crond.service devices:/system.slice/systemd-udevd.service devices:/system.slice/dbus.service devices:/system.slice/irqbalance.service devices:/system.slice/lvm2-lvmetad.service devices:/system.slice/auditd.service devices:/system.slice/system-getty.slice devices:/system.slice/chronyd.service devices:/system.slice/NetworkManager.service devices:/system.slice/systemd-logind.service devices:/system.slice/systemd-journald.service devices:/system.slice/firewalld.service # system.slice すべてのシステムサービスのデフォルトの場所 # user.slice すべてのユーザーセッションのデフォルトの場所 # ***.service ユニット設定ファイルに基づいて Systemd が起動したプロセスまたはプロセスのグループ # ***.slice 階層的に編成されたユニットのグループ スライスにはプロセスが含まれずスコープやサービスが置かれる階層を編成 |
[4] | ちなみに、デフォルト設定の Systemd のコントロールグループ階層は以下のようにして確認できます。 |
[root@dlp ~]# systemd-cgls +--1 /usr/lib/systemd/systemd --switched-root --system --deserialize 21 +--user.slice | +--user-0.slice | +--session-1.scope | +-- 791 login -- root | +--1095 -bash | +--8395 systemd-cgls | +--8396 less +--system.slice +--rsyslog.service | +--986 /usr/sbin/rsyslogd -n +--tuned.service | +--985 /usr/bin/python -Es /usr/sbin/tuned -l -P +--sshd.service | +--984 /usr/sbin/sshd -D +--postfix.service | +--1084 /usr/libexec/postfix/master -w | +--1086 qmgr -l -t unix -u | +--8359 pickup -l -t unix -u +--NetworkManager.service | +--647 /usr/sbin/NetworkManager --no-daemon +--firewalld.service | +--641 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid +--crond.service | +--634 /usr/sbin/crond -n +--dbus.service | +--619 /bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --sy +--polkit.service | +--618 /usr/lib/polkit-1/polkitd --no-debug +--irqbalance.service | +--616 /usr/sbin/irqbalance --foreground +--chronyd.service | +--622 /usr/sbin/chronyd +--systemd-logind.service | +--613 /usr/lib/systemd/systemd-logind +--auditd.service | +--591 /sbin/auditd -n | +--597 /sbin/audispd | +--602 /usr/sbin/sedispatch +--systemd-udevd.service | +--487 /usr/lib/systemd/systemd-udevd +--lvm2-lvmetad.service | +--477 /usr/sbin/lvmetad -f +--system-getty.slice | +--getty@tty1.service | +--645 /sbin/agetty --noclear tty1 linux +--systemd-journald.service +--462 /usr/lib/systemd/systemd-journald |
Sponsored Link |