怎样限制centos进程资源

在 CentOS 系统中,可以使用 cgroups(control groups)来限制进程的资源使用。cgroups 是 Linux 内核的一个功能,可以限制、记录和隔离进程组的资源使用(如 CPU、内存、磁盘 I/O 等)。以下是使用 cgroups 限制进程资源的方法:

  1. 安装 cgroup-tools 软件包:
sudo yum install cgroup-tools
  1. 创建一个新的 cgroup:
sudo cgcreate -g cpu,memory:/my_cgroup

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

  1. 为新 cgroup 设置资源限制:
  • 限制 CPU 使用率:
echo 50000 | sudo tee /sys/fs/cgroup/cpu/my_cgroup/cpu.cfs_quota_us

这将限制 my_cgroup 中的进程最多使用 50% 的 CPU 资源。

  • 限制内存使用:
echo 100M | sudo tee /sys/fs/cgroup/memory/my_cgroup/memory.limit_in_bytes

这将限制 my_cgroup 中的进程最多使用 100MB 的内存资源。

  1. 将进程添加到 cgroup:

首先,找到要限制资源的进程的 PID:

ps aux | grep your_process_name

然后,将进程添加到新创建的 cgroup:

sudo cgclassify -g cpu,memory:my_cgroup 

替换为实际进程 ID。

现在,my_cgroup 中的进程将受到之前设置的资源限制。

  1. 若要查看 cgroup 中的进程及其资源使用情况,可以使用以下命令:
  • 查看 cgroup 中的进程:
ps -o pid,cmd --no-headers -C my_cgroup
  • 查看 cgroup 的资源使用情况:
sudo cgget -g cpu,memory:my_cgroup
  1. 若要删除 cgroup,可以使用以下命令:
sudo cgdestroy my_cgroup

这将删除名为 my_cgroup 的 cgroup 及其相关资源限制。

请注意,cgroups 功能需要 Linux 内核版本 2.6.32 或更高版本。在 CentOS 7 和更高版本中,cgroups 已经默认启用。