温馨提示×

Ubuntu如何限制进程资源

小樊
63
2025-09-14 09:57:29
栏目: 智能运维

在Ubuntu中,可以使用cgroups(control groups)来限制进程的资源

  1. 安装cgroup工具:
sudo apt-get update sudo apt-get install cgroup-tools 
  1. 创建一个新的cgroup:
sudo cgcreate -g cpu,memory:/my_cgroup 

这将创建一个名为my_cgroup的新cgroup,限制CPU和内存资源。

  1. 限制CPU资源:

要限制cgroup中的进程使用的CPU资源,可以使用cgset命令。例如,要将CPU使用率限制为50%,可以执行以下命令:

sudo cgset -r cpu.cfs_quota_us=50000 my_cgroup 

这里,cpu.cfs_quota_us表示cgroup中进程可以使用的CPU时间(以微秒为单位)。将其设置为50000意味着进程可以使用50%的CPU时间。

  1. 限制内存资源:

要限制cgroup中的进程使用的内存资源,可以使用cgset命令。例如,要将内存使用限制为256MB,可以执行以下命令:

sudo cgset -r memory.limit_in_bytes=268435456 my_cgroup 

这里,memory.limit_in_bytes表示cgroup中进程可以使用的内存大小(以字节为单位)。将其设置为268435456意味着进程可以使用256MB的内存。

  1. 将进程添加到cgroup:

要将进程添加到cgroup,可以使用cgclassify命令。例如,要将进程ID为12345的进程添加到my_cgroup,可以执行以下命令:

sudo cgclassify -g cpu,memory:my_cgroup 12345 

现在,进程ID为12345的进程将受到之前设置的CPU和内存限制。

  1. 查看cgroup信息:

要查看cgroup的详细信息,可以使用cggetcgexec命令。例如,要查看my_cgroup的CPU和内存使用情况,可以执行以下命令:

sudo cgget -g cpu,memory:my_cgroup 

要在一个cgroup中运行命令,可以使用cgexec命令。例如,要在my_cgroup中运行top命令,可以执行以下命令:

sudo cgexec -g cpu,memory:my_cgroup top 

这样,您就可以在Ubuntu中使用cgroups来限制进程的资源了。

0