CPULimit ツールを使用して Linux のプロセスの CPU 使用量を制限する
以前の投稿で、Linux のプロセスの CPU 使用率を制限および制御するための CPUTool について説明しました。これにより、システム管理者は、CPU/システム負荷が定義されたしきい値を超えた場合にプロセス (またはプロセス グループ) の実行を中断できます。ここでは、cpulimit と呼ばれる同様のツールの使用方法を学びます。
Cpulimit は、CPUTool と同じ方法でプロセスの CPU 使用量を制限するために使用されますが、対応するものと比較して、より多くの使用オプションを提供します。重要な違いの 1 つは、cpulimit は cputool とは異なりシステム負荷を管理しないことです。
推奨読書: Linux で CPU 情報を取得するための 9 つの便利なコマンド
Linux でプロセスの CPU 使用率を制限するには、CPULimit をインストールします
CPULimit は、パッケージ管理ツールを使用して、Debian/Ubuntu とその派生製品のデフォルトのソフトウェア リポジトリからインストールできます。
sudo apt install cpulimit
RHEL/CentOS および Fedora では、まず EPEL リポジトリを有効にしてから、図に示すように cpulimit をインストールする必要があります。
# yum install epel-release
# yum インストール cplimit
CUPLimit によるプロセスの CPU 使用量の制限
このサブセクションでは、cpulimit がどのように機能するかを説明します。まず、バックグラウンドで CPU の使用率が高くなるコマンド (cputool で説明したのと同じdd コマンド) を実行しましょう (コマンドの実行後にプロセス PID が出力されることに注意してください)。 。
dd if=/dev/zero of=/dev/null &
[1] 17918
次に、実行中の Linux システムの実際の頻繁に更新される状態を出力する top ツールまたはグランス ツールを使用して、上記のコマンドの CPU 使用率を監視できます。
top
上記の出力を見ると、dd プロセスが CPU 時間の最も高い割合を100.0% 使用していることがわかります。
ただし、次のように cputlimit を使用してこれを制限できます。 --pid
または -p
オプションは PID を指定するために使用され、--limit
または -l
はプロセスの使用率を設定するために使用されます。
以下のコマンドは、dd コマンド (PID 17918) による 1 つの CPU コアの使用を50%に制限します。
sudo cpulimit --pid 17918 --limit 50
Process 17918 detected
cplimit を実行すると、top またはグランスでdd コマンドの現在の CPU 使用率を表示できます。出力から、値の範囲は (51.5% ~ 55.0% またはそれをわずかに超える) です。
次のようにして 2 回目の CPU 使用率を調整し、今度は次のようにパーセンテージをさらに下げることができます。
sudo cpulimit --pid 17918 --limit 20
Process 17918 detected
以前と同様に、top またはグランスを実行して、プロセスの新しい CPU 使用率を表示できます。これは20% ~ 25.0% またはこれをわずかに上回る範囲になります。
top
注: シェルは非対話型になります。cpulimit の実行中はユーザー入力を期待しません。これを強制終了するには (CPU 使用量制限操作を停止します)、[Ctrl + C]
を押します。
cplimit をバックグラウンド プロセスとして実行するには、--background
または -b
スイッチを使用して、ターミナルを解放します。
sudo cpulimit --pid 17918 --limit 20 --background
システム上に存在する CPU コアの数を指定するには、--cpu
または -c
フラグを使用します (これは通常、自動的に検出されます)。
sudo cpulimit --pid 17918 --limit 20 --cpu 4
プロセスの CPU 使用量を制限するのではなく、--kill
または -k
オプションを使用してプロセスを強制終了できます。デフォルトでは、プロセスに送信されるシグナルは SIGCONT ですが、別のシグナルを送信するには、--signal
または -s
フラグを使用します。
sudo cpulimit --pid 17918 --limit 20 --kill
適切なターゲット プロセスがない場合、またはプロセスが終了した場合に終了するには、次のように -z
または --lazy
を含めます。
sudo cpulimit --pid 17918 --limit 20 --kill --lazy
追加情報と使用方法のオプションについては、cpulimit のマニュアル ページを参照してください。
man cpulimit
CPU 情報の検索と CPU/システム パフォーマンスの監視については、次の便利なガイドを参照してください。
- Linux での最高のメモリと CPU 使用率による上位実行プロセスの検索
- Cpustat – Linux でプロセスを実行することにより CPU 使用率を監視します
- CoreFreq – Linux システム用の強力な CPU 監視ツール
- Linux での最高のメモリと CPU 使用率による上位実行プロセスの検索
- Linuxのパフォーマンスを監視する20のコマンドラインツール
- 13 Linux パフォーマンス監視ツール – パート 2
比較すると、CPUTool とCPULimit をテストした結果、前者の方がより効果的で信頼性の高い「プロセス CPU 使用量制限」機能を提供していることがわかりました。
これは、特定のプロセスに対して両方のツールを実行した後に観察された CPU 使用率の範囲に応じたものです。両方のツールを試して、以下のフィードバック フォームを使用してこの記事に意見を追加してください。