在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系統通常默認啟用此功能。