GNU/Linux >> Linux の 問題 >  >> Linux

niceおよびreniceコマンドを使用してLinuxプロセスの優先度を設定する方法

Niceは、プロセスの「niceness」値を設定できるLinuxのコマンドラインユーティリティです。定義された優先度でプロセスを開始するために使用されます。優先度を定義せずにプログラムまたはプロセスを開始すると、niceはデフォルトの優先度を10に設定します。nicenessは19が最低の優先度で、-20が最高の優先度です。 niceコマンドは、複数のプロセスがCPUが提供できるよりも多くのリソースを要求している場合に非常に役立ちます。

Reniceはniceと非常によく似ており、すでに実行中のプロセスの優先度を変更するために使用されます。プロセスが長いためにシステムの実行速度が非常に遅い場合は、reniceコマンドを使用して、そのプロセスの優先度を増減できます。

優先度は各プロセスに割り当てることができる値であり、カーネルはこの値を使用してプロセスの実行をスケジュールします。

  • 0-99 は、リアルタイムの優先度の割り当てに使用される優先度の値です。
  • 100-139 ユーザーが割り当てる優先度の値です。

この投稿では、Niceおよびreniceコマンドを使用してLinuxプロセスの優先度を設定する方法を紹介します。

前提条件

  • Atlantic.Netクラウドプラットフォーム上のLinuxサーバー
  • サーバーで構成されているrootパスワード

ステップ1-Atlantic.Netクラウドサーバーを作成する

まず、Atlantic.Netクラウドサーバーにログインします。 2GB以上のRAMを搭載したオペレーティングシステムとしてUbuntu、CentOS、またはRocky Linuxを選択して、新しいサーバーを作成します。 SSH経由でクラウドサーバーに接続し、ページの上部で強調表示されているクレデンシャルを使用してログインします。

サーバーにログインしたら、次のコマンドを実行して、ベースシステムを最新の利用可能なパッケージで更新します。

apt-get update -y

または

dnf update -y

ステップ2–プロセスの優れた価値を表示する

Linuxでは、プロセスまたはプログラムを開始すると、デフォルトの優先度0が取得されます。

psまたはtopコマンドを使用して、実行中のプロセスの優先度を表示できます。

NginxプロセスのNice値を確認するには、次のコマンドを実行します。

ps -fl -C nginx

以下に示すように、NI列にNginxプロセスの優先度が表示されます。

F S UID        PID  PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY          TIME CMD
5 S www-data  3156  3155  0  80   0 - 21700 -      10:33 ?        00:00:00 nginx: worker process

実行中のすべてのプロセスの適切な値を表示するには、topコマンドを使用します。

top

NI列にすべてのプロセスの優れた値が表示されるはずです。

ステップ3–ニースコマンドでプロセスの優先度を変更する

niceコマンドは、実行中のプロセスの優先度を変更できません。ただし、niceコマンドを使用して、事前定義された優先度で任意のプログラムを開始できます。

たとえば、適切な値5でトッププログラムを開始します:

nice -5 top

これにより、優先度の値5が最上位に割り当てられます。

次に、別のターミナルを開き、以下に示すようにトップの優先度を確認します。

ps -fl -C top

NI列に最上位コマンドの優先度が表示されます:

F S UID        PID  PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY          TIME CMD
4 S vyom      7966  7277  0  85   5 -  7323 poll_s 11:41 pts/14   00:00:00 top

優先度の値を0より大きく設定する場合は、root権限は必要ありません。負の値を割り当ててプロセスの優先度を上げる場合は、root権限が必要になります。

たとえば、最上位コマンドの優先度を-20に上げるには、次のコマンドを使用します。

sudo nice --20 top

ステップ4–reniceコマンドを使用して実行中のプロセスの優先度を変更する

ご存知のように、niceコマンドは実行中のプロセスの優先度を変更することはできません。この場合、実行中のプロセスの優先度を変更するには、reniceコマンドを使用する必要があります。

ここでは、すでに実行されている最上位のプロセスを使用します。

まず、次のコマンドを使用して、最上位プロセスの現在の優先度を確認します。

ps -fl -C top

サンプル出力:

F S UID        PID  PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY          TIME CMD
4 S vyom      7966  7277  0  85   5 -  7323 poll_s 11:41 pts/14   00:00:03 top

ご覧のとおり、最上位プロセスの優先度は5です。

ここで、最上位プロセスの優先度を-15に変更します。

まず、次のコマンドを使用して、最上位プロセスのPIDを見つけます。

pidof top

サンプル出力:

7966

ここで、topの優先度値とPIDを指定して、次のコマンドを実行します。

sudo renice -n -15 -p 7966

サンプル出力:

7966 (process ID) old priority 5, new priority -15

特定のユーザーが所有するすべてのプロセスの優先度を変更することもできます。

たとえば、rootユーザーが所有するすべてのプロセスの優先度を変更し、次のコマンドを実行します。

sudo renice -n 10 -u root

結論

このガイドでは、niceandreniceコマンドを使用してプロセスの優先度を設定および変更する方法を学習しました。必要に応じて、プロセスの優先度を簡単に増減できるようになりました。 Altantic.NetのVPSホスティングアカウントでniceとreniceの使用を開始します。


Linux
  1. ncおよびpvコマンドを使用して2台のコンピューター間でファイルを転送する方法

  2. Linuxでシャットダウンおよび再起動コマンドを無効にする方法

  3. Linux nice and reniceコマンドチュートリアル(7例)

  1. Linuxでゾンビプロセスを見つけて殺す方法

  2. Linux の Nice および Renice の例を使用してプロセスの優先度を変更する方法

  3. Linuxで1つのプロセスのすべてのスレッド(および子)を解放する方法は?

  1. Linuxでプロセスを強制終了する方法は?終了するコマンド

  2. Linuxコマンド:プロセスの優先順位を操作する方法

  3. コマンドを使用してLinuxでプロセスを強制終了する方法は?