Linux性能監控下的一個關鍵領域必須是CPU使用率和系統負載。有幾個Linux性能監控工具可以監控系統上事務的進展。
A number of these tools simply output the system state/statistics while a few others provide you means of managing system performance. One such tool called CPUTool.
CPUTool是一個簡單但功能強大的命令行工具,用於限制和控制任何進程的CPU利用率到給定的限制,並允許在系統負載超過定義的閾值時中斷進程執行。
CPUTool的工作原理是怎樣的?
為了限制CPU使用率,cputool向進程發送SIGSTOP和SIGCONT信號,這是由系統負載確定的。它依賴於/proc偽文件系統來讀取PIDs及其CPU使用率測量。
它可以用於將受單個進程或一組進程影響的CPU使用率或系統負載限制到給定的限制,並/或在系統負載超過閾值時暫停進程。
建議閱讀: 了解Linux負載平均值和監控Linux性能
安裝 CPUTool 來限制 CPU 使用率和負載平均值
A CPUTool is only available to install on Debian/Ubuntu and its derivatives from the default system repositories using package management tool.
$ sudo apt install cputool
使用 CUPTool 限制進程 CPU 使用率
現在讓我們看看 cputool 的實際運作方式。為了展示這一切,我們將運行一個dd 命令,這應該會導致高 CPU 百分比,在後台運行並顯示其 PID。
# dd if=/dev/zero of=/dev/null &
我們可以使用top或glances工具來監控 CPU 使用情況,這些工具允許我們查看運行中的 Linux 系統進程的實時定期更新狀態:
# top

從上面的輸出中,我們可以看到dd 命令佔用了最高百分比的 CPU 時間99.7%)
現在我們可以使用 cputool 來限制這一點,如下所示。
使用--cpu-limit
或-c
標誌來設置進程或進程組的使用百分比,使用-p
來指定 PID。以下命令將限制 dd 命令(PID 8275)使用一個 CPU 核心的50%:
# cputool --cpu-limit 50 -p 8275
運行 cputool 後,我們可以再次檢查進程(PID 8275)的新 CPU 使用情況。現在dd進程的 CPU 使用情況應該在(49.0%-52.0%)之間。
# top

為了進一步限制 dd 的 CPU 使用率為20%,我們可以再次運行 cputool:
# cputool --cpu-limit 20 -p 8275
然後立即使用像top或glances這樣的工具檢查(現在dd的CPU使用率應該在19.0%-22.0%之間或略高於此):
# top

請注意,當cputool運行時,shell不需要任何用戶輸入;因此變得無響應。要終止它(這將終止CPU使用率限制操作),請按Ctrl + C
。
重要的是,要為一個進程組(一個具有幾個運行實例並且每個實例具有不同PID的程序)指定,例如HTTP Web伺服器:
# pidof apache2 9592 3643 3642 3641 3640 3638 3637 1780
像這樣使用-P
標誌:
# cputool --cpu-limit 20 -P 1780
使用CUPTool限制系統負載
使用-l
選項來指定進程或進程組可以繼續運行的系統最大負載。我們可以使用分數值(例如2.5)。
下面的示例表示當系統負載不超過3.5時運行rsync進行本地備份:
# cputool --load-limit 3.5 --rsync -av /home/tecmint /backup/`date +%Y-%m-%d`/
有關更多信息和用法,請查看CPUTool手冊頁面:
# man cputool
請查看以下有用的指南以查找CPU信息和監控CPU性能:
- 在Linux上获取CPU信息的9个有用命令
- Cpustat – 监控Linux中运行进程的CPU利用率
- CoreFreq – 适用于Linux系统的强大CPU监控工具
- 在Linux中按最高内存和CPU使用率查找顶级运行进程
总之,CPUTool对于Linux性能管理非常实用。请通过下面的反馈表分享您对本文的想法。
Source:
https://www.tecmint.com/cputool-limit-linux-process-cpu-usage-load/