在 Linux 中限制進程 CPU 使用率的 2 種方法

在管理 Linux 系統時,您需要限制進程的 CPU 使用率,因為它會消耗更多的 CPU 使用率並影響整個系統的性能。 在本教程中,我將展示如何在 Centos 7 和 Ubuntu 16 上控制進程的 CPU 時間。

另請參閱 : 如何在 Linux 上限制用戶級別的進程

1)CPU限制

cpulimit 是一個很好的命令行工具,用 C 編程語言編寫,用於限制進程的 CPU 使用率。 默認情況下它不存在,因此我們需要安裝它。

要在 Ubuntu 16.04 上安裝 cpulimit,請執行以下操作

# apt-get install cpulimit

在centos 7上安裝

# yum install epel-release
# yum install cpulimit

我們通過使用 --limit 或者 -l 用於設置進程使用百分比的選項。 在限制 CPU 使用率之前,您需要找到佔用您所有 CPU 時間的進程或命令。 cpulimit的三種使用方式,通過acting

  • 在可執行程序上 --executable 或者 -e選項
cpulimit -e program -l %cpu
  • 在文件的絕對路徑名上 --path 或者 -P選項
cpulimit -P path -l %cpu
  • PID 過程的--pid 或者 -p選項
cpulimit -p process_pid -l %cpu

因此,我們將首先檢查消耗 CPU 時間的進程/程序

# top

然後您可以使用以下命令和程序名稱。

# cpulimit -e vmware-vmx -l 40
Process 3185 detected

您可以看到該工具已自動檢測到程序的進程 ID。 您可以使用進程 ID 限制 CPU 使用率,如下所示

# cpulimit -p 3185 -l 40
Process 3185 detected

你可以在下面看到結果

您可以使用以下命令在後台運行 cpulimit--background 或者 -b選項

2) cputool

您可以使用 cputool,它也使用 cpulimit 來減少 CPU 使用率。這也可以通過使用負載限制來完成。 cputool 默認不存在,所以你需要在 Ubuntu 16 上安裝它

# apt install cputool

要使用 cputool,您需要遵守以下語法

cputool --cpu-limit %cpu -p process_pid

與同 example, 你可以使用 cputool 如下

# cputool --cpu-limit 30 -p 3185

該命令將控制您的終端,因此您可以在後台使用它,如下所示:

# cputool --cpu-limit 30 -p 3185 &
[1] 16808

你可以看到如下結果

使用這些工具,您可以輕鬆控制進程在運行時的 CPU 使用率。 您不需要終止進程以減少使用量,但您可以簡單地指定一個百分比以使其不超過。