翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
cgroups を使用して AL2023 でプロセスのリソース使用量を制限する
systemd によるリソースコントロール を使用することが推奨されますが、このセクションでは、基本の libcgroup-tools ユーティリティを使ってプロセスの CPU とメモリの使用量を制限する基本的な方法を説明します。どちらも、以前 EPEL に含まれていた cpulimit ユーティリティの代わりに使用できる手段です。
以下の例では、libcgroup-tools パッケージのユーティリティと sysfs の調整可能なオプションを使用して CPU とメモリの使用量を制限しながら、(stress-ng パッケージから) stress-ng ストレステストを実行する方法について説明します。
コマンドラインで libcgroup-tools を使用してリソース使用量を制限する
-
libcgroup-toolsパッケージをインストールします。[ec2-user ~]$sudo dnf installlibcgroup-tools -
memoryおよびcpuコントローラーを使用してcgroupを作成し、名前 (our-example-limits) を付けます。-aおよび-tオプションを使用して、ec2-userユーザーがcgroupの調整可能なオプションを制御できるようにします。[ec2-user ~]$sudo cgcreate -aec2-user-tec2-user-g memory,cpu:our-example-limits/sys/fs/cgroup/our-example-limits/ディレクトリが追加されており、調整可能な各オプションの制御に使用できるファイルが含まれています。注記
Amazon Linux 2 では、AL2023 で使用される
cgroup-v1ではなくcgroup-v2を使用します。AL2 ではsysfsのパスが異なり、ec2-userが所有する/sys/fs/cgroup/memory/our-example-limitsおよび/sys/fs/cgroup/cpu/our-example-limitsディレクトリに、cgroupの制限を制御するために使用できるファイルが格納されています。 -
cgroupのすべてのプロセスのメモリ使用量を 1 億バイトに制限します。[ec2-user ~]$echo100000000> /sys/fs/cgroup/our-example-limits/memory.max注記
Amazon Linux 2 では、Amazon Linux 2023 が使用する
cgroup-v2ではなくcgroup-v1を使用します。つまり、調整可能なオプションが一部異なります。AL2 でメモリ使用量を制限するには、代わりに以下の調整可能なオプションが使用されます。[ec2-user ~]$echo10000000> /sys/fs/cgroup/memory/our-example-limits/memory.limit_in_bytes -
cgroupのすべてのプロセスの CPU 使用率を 10% に制限します。cpu.maxファイルの形式は$MAX $PERIODで、グループの使用量が$PERIODにつき$MAXに制限されます。[ec2-user ~]$echo10000 100000> /sys/fs/cgroup/our-example-limits/cpu.maxAmazon Linux 2 では、Amazon Linux 2023 が使用する
cgroup-v2ではなくcgroup-v1を使用します。つまり、CPU 使用率の制限方法など、調整可能なオプションが一部異なります。 -
以下の例では、
our-example-limitscgroup でstress-ng(dnf install -y stress-ngを実行してインストール可能) を実行します。stress-ngコマンドの実行中に、topコマンドを使用して、使用率が CPU 時間の 10% に制限されていることを確認できます。[ec2-user ~]$sudo cgexec -g memory,cpu:our-example-limitsstress-ng --cpu 1 -
cgroup を削除してクリーンアップします。
[ec2-user ~]$sudo cgdelete -g memory,cpu:our-example-limits
Linux カーネルの cgroup-v2 のドキュメント