在CentOS中,可以使用cgroups(control groups)来限制进程的资源
sudo yum install libcgroup-tools
sudo cgcreate -g cpu,memory:/my_cgroup
这将创建一个名为my_cgroup的新cgroup,限制CPU和内存资源。
echo "50000" | sudo tee /sys/fs/cgroup/cpu/my_cgroup/cpu.cfs_quota_us
echo "100000" | sudo tee /sys/fs/cgroup/cpu/my_cgroup/cpu.cfs_period_us
这将限制my_cgroup中的进程最多使用50%的CPU资源。
echo "104857600" | sudo tee /sys/fs/cgroup/memory/my_cgroup/memory.limit_in_bytes
这将限制my_cgroup中的进程最多使用100MB的内存资源。
首先,找到要限制资源的进程ID(PID):
ps aux | grep your_process_name
然后,将进程添加到cgroup:
echo <PID> | sudo tee /sys/fs/cgroup/cpu/my_cgroup/tasks
echo <PID> | sudo tee /sys/fs/cgroup/memory/my_cgroup/tasks
将<PID>替换为实际的进程ID。
现在,my_cgroup中的进程将受到之前设置的资源限制。
sudo cgdestroy /sys/fs/cgroup/cpu/my_cgroup
sudo cgdestroy /sys/fs/cgroup/memory/my_cgroup
这将删除my_cgroup及其相关资源限制。