ウェブサイト検索

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/システム パフォーマンスの監視については、次の便利なガイドを参照してください。

  1. Linux での最高のメモリと CPU 使用率による上位実行プロセスの検索
  2. Cpustat – Linux でプロセスを実行することにより CPU 使用率を監視します
  3. CoreFreq – Linux システム用の強力な CPU 監視ツール
  4. Linux での最高のメモリと CPU 使用率による上位実行プロセスの検索
  5. Linuxのパフォーマンスを監視する20のコマンドラインツール
  6. 13 Linux パフォーマンス監視ツール – パート 2

比較すると、CPUTool とCPULimit をテストした結果、前者の方がより効果的で信頼性の高い「プロセス CPU 使用量制限」機能を提供していることがわかりました。

これは、特定のプロセスに対して両方のツールを実行した後に観察された CPU 使用率の範囲に応じたものです。両方のツールを試して、以下のフィードバック フォームを使用してこの記事に意見を追加してください。