在 CentOS 系統中,可以使用 cgroups
(control groups)來限制進程的資源使用。cgroups
是 Linux 內核的一個功能,可以限制、記錄和隔離進程組的資源使用(如 CPU、內存、磁盤 I/O 等)。以下是使用 cgroups
限制進程資源的方法:
cgroup-tools
軟件包:sudo yum 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
這將限制 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 your_process_name
然后,將進程添加到新創建的 cgroup:
sudo cgclassify -g cpu,memory:my_cgroup <PID>
將 <PID>
替換為實際進程 ID。
現在,my_cgroup
中的進程將受到之前設置的資源限制。
ps -o pid,cmd --no-headers -C my_cgroup
sudo cgget -g cpu,memory:my_cgroup
sudo cgdestroy my_cgroup
這將刪除名為 my_cgroup
的 cgroup 及其相關資源限制。
請注意,cgroups
功能需要 Linux 內核版本 2.6.32 或更高版本。在 CentOS 7 和更高版本中,cgroups
已經默認啟用。