Skip to content

Instantly share code, notes, and snippets.

@twelvejie
Created September 3, 2025 02:29
Show Gist options
  • Save twelvejie/97ce1cb7c752c76716140296bc64fb8b to your computer and use it in GitHub Desktop.
Save twelvejie/97ce1cb7c752c76716140296bc64fb8b to your computer and use it in GitHub Desktop.

cgroups

检查cgroups

参考资料:安装 配置

grep -i cgroup /proc/mounts

安装

sudo yum install libcgroup

启动服务

sudo systemctl start cgconfig
sudo systemctl enable cgconfig

创建控制组(控制cpu)

创建

名字叫kettle_limit,控制cpu使用

sudo cgcreate -g cpu:kettle_limit

添加限制

cpu.cfs_period_us: 一个时间周期,单位是微秒(us)。默认值是 100,000 us (100毫秒) 。

cpu.cfs_quota_us: 在一个 cpu.cfs_period_us 周期内,该 cgroup 的进程可以使用的 CPU 时间,单位也是微秒。

例如,要将 CPU 使用率限制在 50%,你可以将 quota 设置为 50000。

sudo cgset -r cpu.cfs_period_us=100000 kettle_limit
sudo cgset -r cpu.cfs_quota_us=50000 kettle_limit

在cgroup中运行程序

在启动时将进程放入 cgroup

cgexec -g cpu:kettle_limit sh /path/to/your/kettle/script.sh

已运行的进程移动到 cgroup

首先,找到 Kettle 进程的 PID:

pgrep -f "java.*kettle"

假设 PID 是 12345,然后将它加入 cgroup:

sudo cgclassify -g cpu:kettle_limit 12345
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment