本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 限制 AL2023 中的程序資源使用量 cgroups
雖然建議使用 使用 進行資源控制 systemd,但本節涵蓋基本libcgroup-tools公用程式的基本使用量,以限制程序的 CPU 和記憶體使用量。這兩種方法都是使用 cpulimit公用程式的替代方案,先前在 中找到EPEL。
以下範例涵蓋執行stress-ng壓力測試 (來自stress-ng套件),同時使用libcgroup-tools套件中的公用程式限制其 CPU 和記憶體用量,以及 中的調校sysfs。
在命令列libcgroup-tools上使用 來限制資源使用量
-
安裝
libcgroup-tools套裝服務。[ec2-user ~]$sudo dnf installlibcgroup-tools -
cgroup使用memory和cpu控制器建立 ,並為其命名 (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 使用
cgroup-v1cgroup-v2而非用於 AL2023。在 AL2 上,sysfs路徑不同,而且 擁有的/sys/fs/cgroup/memory/our-example-limits和/sys/fs/cgroup/cpu/our-example-limits目錄將ec2-user包含可用於控制 限制的檔案cgroup。 -
將 中所有程序的記憶體用量限制
cgroup在 1 億位元組。[ec2-user ~]$echo100000000> /sys/fs/cgroup/our-example-limits/memory.max注意
Amazon Linux 2 使用
cgroup-v1而非cgroup-v2Amazon Linux 2023 使用的 。這表示某些可調整項目不同。若要限制 AL2 上的記憶體用量,請改用下列可調校功能。[ec2-user ~]$echo10000000> /sys/fs/cgroup/memory/our-example-limits/memory.limit_in_bytes -
將 中所有程序的 CPU 用量限制
cgroup為 10%。檔案的格式cpu.max為$MAX $PERIOD,限制 群組$MAX針對每個 消耗$PERIOD。[ec2-user ~]$echo10000 100000> /sys/fs/cgroup/our-example-limits/cpu.maxAmazon Linux 2 使用
cgroup-v1而非cgroup-v2Amazon Linux 2023 使用的 。這表示某些可調整項目不同,包括如何限制 CPU 用量。 -
以下範例會在 中執行
our-example-limitsstress-ng(可透過執行 來安裝dnf install -y stress-ng)cgroup。stress-ng命令執行時,您可以使用 觀察top其限制為 10% CPU的時間。[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