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擬似ファイルシステムを利用してPIDとそれらの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
CPUToolでプロセスのCPU使用率を制限する
さて、cputoolの実際の動作を見てみましょう。すべてをデモンストレーションするために、バックグラウンドで高いCPU使用率になるはずのddコマンドを実行し、そのPIDを表示します。
# dd if=/dev/zero of=/dev/null &
CPU使用率を監視するには、実行中のLinuxシステムプロセスの状態をリアルタイムで定期的に更新するtopやglancesツールを使用できます。
# top

上記の出力から、ddコマンドがCPU時間の最も高い割合を持っていることがわかります(99.7%)
)。これを以下に示すようにcputoolを使用して制限できます。
--cpu-limit
または-c
フラグは、プロセスまたはプロセスグループの使用率を設定するために使用され、-p
はPIDを指定するために使用されます。次のコマンドは、ddコマンド(PID 8275)を1つのCPUコアの50%の使用に制限します。
# cputool --cpu-limit 50 -p 8275
cputoolを実行した後、プロセス(PID 8275)の新しいCPU使用率をもう一度確認できます。現在、ddプロセスのCPU使用率は(49.0%-52.0%)の範囲になるはずです。
# top

ddのCPU使用率をさらに20%に制限するために、cputoolを2回実行できます。
# cputool --cpu-limit 20 -p 8275
その後、topやglancesなどのツールを使用して直ちに確認します(現在ddのCPU使用率は19.0%-22.0%またはそれよりわずかに高い範囲になるはずです):
# top

シェルはcputoolの実行中にユーザー入力を必要としないため、応答がなくなります。それを終了させるには(これによりCPU使用率制限操作が終了します)、Ctrl + C
を押します。
重要なこととして、プロセスグループ(異なるPIDを持つ複数の実行インスタンスを持つ1つのプログラム)を指定するには、例えばHTTPウェブサーバーの場合:
# pidof apache2 9592 3643 3642 3641 3640 3638 3637 1780
次のように-P
フラグを使用します:
# cputool --cpu-limit 20 -P 1780
CPUToolでシステム負荷を制限する
-l
オプションは、プロセスまたはプロセスグループが継続して実行されるためにシステムが経過できる最大負荷を指定するために使用されます。小数値(例:2.5)を使用することもできます。
以下の例は、システム負荷が3.5を超えない場合にのみ、ローカルバックアップのためにrsyncを実行することを意味します:
# cputool --load-limit 3.5 --rsync -av /home/tecmint /backup/`date +%Y-%m-%d`/
詳細や使用法については、CPUToolのmanページを参照してください:
# 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/