在Ubuntu系统中,可以使用cgroups
(control groups)来限制进程的资源使用。cgroups
是Linux内核的一个功能,可以限制、记录和隔离进程组的资源使用(如CPU、内存、磁盘I/O等)。以下是如何使用cgroups
限制进程资源使用的步骤:
cgroup-tools
软件包:sudo apt-get update
sudo apt-get install cgroup-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 "100M" | sudo tee /sys/fs/cgroup/memory/my_cgroup/memory.limit_in_bytes
这将限制my_cgroup
中的进程最多使用100MB内存。
首先,找到要限制的进程的PID:
ps aux | grep process_name
然后,将进程添加到my_cgroup
:
sudo cgclassify -g cpu,memory:my_cgroup <PID>
将<PID>
替换为实际进程ID。
现在,my_cgroup
中的进程将受到之前设置的资源限制。
sudo cgdestroy -g cpu,memory:my_cgroup
这将删除my_cgroup
及其资源限制设置。
请注意,cgroups
功能需要Linux内核版本2.6.32或更高版本。Ubuntu系统通常默认启用此功能。