sysfs
を使用したcgroups v2
の管理
この項では、sysfs
インタフェースを使用して、システムで実行されているプロセス間でのリソースの配分を管理するためのcgroups
を作成および構成する方法を示します。
重要:
systemdを使用してすべてのリソース管理を処理することをお薦めします。詳細は、『Oracle Linux 8: systemdでのシステムの管理』を参照してください。ここに示す例では、systemdがシステムで実行するアクションのコンテキストを示し、systemdの外部の機能を示します。提供される情報は、cgroupsの問題をデバッグするときに役立ちます。
この手順の例では、それぞれに異なるアプリケーションPIDが割り当てられているcgroups
間でCPU時間を割り当てます。CPU時間およびアプリケーションPID値は、各グループのCPU.weight
およびcgroup.procs
ファイルに設定されています。
この例には、/sys/fs/cgroup
の下に作成する必要があるcgroups
で、cpu
コントローラおよびそれに関連付けられたファイル(cpu.weight
ファイルを含む)を使用できるようにするために必要なステップも含まれています。
CPU時間の配分のための制御グループの準備
この手順では、CPU時間の配分を管理する制御グループを手動で準備する方法について説明します。制御グループの構成には、systemd
を使用することをお薦めします。
CPU時間の配分を制御するためのCPUの重みの設定
この手順では、制御グループを使用してCPU時間の配分を管理することによって、3つの異なるプロセスのCPUの重みを設定する方法について説明します。制御グループの構成には、systemd
を使用することをお薦めします。
この手順は、次の仮定に基づいています。
-
次の
top
コマンドの出力例に示すように、CPUリソースを過度に消費しているアプリケーションはsha1sum
です:sudo top
... PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 33301 root 20 0 18720 1756 1468 R 99.0 0.0 0:31.09 sha1sum 33302 root 20 0 18720 1772 1480 R 99.0 0.0 0:30.54 sha1sum 33303 root 20 0 18720 1772 1480 R 99.0 0.0 0:30.54 sha1sum 1 root 20 0 109724 17196 11032 S 0.0 0.1 0:03.28 systemd 2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd 3 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 rcu_gp 4 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 rcu_par_gp ...
-
前述のサンプル出力に示されているように、
sha1sum
プロセスには、PID 33301、33302および33303があります。
重要:
以降の手順の前提条件として、CPU時間の配分のための制御グループの準備の説明に従って、cgroup-v2
の準備を完了する必要があります。これらの準備をスキップした場合、この手順は完了できません。