在管理 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 使用率。 您不需要終止進程以減少使用量,但您可以簡單地指定一個百分比以使其不超過。