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の使用を開始します。