Unixエコシステムでは、プロセスは実行中のプログラムです。したがって、Linuxボックスで実行されているプログラムはすべてプロセスです。 Linuxボックスで一度に1つ以上のプロセスを実行できます。 ps を使用して、アクティブなプロセスに関する情報を表示できます 指図。デフォルトでは、psコマンドは現在のユーザーのプロセスのみを表示します。 「ps-ef」(もちろん引用符なし)コマンドを使用して、すべてのプロセスを表示できます。プロセスのユーザーを表示するには、「ps-u」を使用します。 Linuxプロセスについての基本的な考え方を理解していただければ幸いです。今日のトピック、つまり niceを使用してLinuxでプロセスの優先度を変更する方法に移りましょう。 およびrenice コマンド。
ご存知かもしれませんが、デフォルトでは、Linuxカーネルはすべてのプロセスを同等に重要であると見なし、各プロセスに同じ量のCPU時間を割り当てます。特定のプロセスの優先度を上げたり下げたりして、より多くのCPU時間を利用したい場合があります。ここで、niceとreniceのコマンドが役立ちます。 niceコマンドは、ユーザー定義の優先度でプロセスを実行するために使用されますが、reniceコマンドは、実行中のプロセスの優先度を変更するために使用されます。通常、niceコマンドとreniceコマンドは、プロセスのデフォルトの優先度よりも優先度を変更するために使用されます。
Niceコマンドでプロセスの優先度を変更する
プロセスのデフォルトの優先度を表示する
プロセスが正常に開始されると、デフォルトの優先度値であるゼロが取得されます。 。
cmusプログラムを使用しています 、このガイドの目的のためのコマンドラインメディアプレーヤー。
コマンドを使用して実行してみましょう:
$ cmus &
注: コマンドが制御オペレーターによって終了された場合& 、シェルはサブシェルのバックグラウンドでコマンドを実行します。
次に、コマンドを使用して実行中のプロセスを確認しましょう:
$ ps -al
出力例:
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD 0 T 1000 13829 13704 0 80 0 - 39431 signal pts/0 00:00:00 cmus 0 R 1000 13848 13704 0 80 0 - 8148 - pts/0 00:00:00 ps
psコマンドを使用して実行中のプロセスを表示する
上記の出力に示されているように、niceness値は、列見出し "NI"の下にリストされています。 。したがって、すべてのプロセスがデフォルトの優先度値であるゼロを取得することは明らかです。
優れたユーティリティでプロセスを開始する
引数なしでniceコマンドを使用してプロセスを開始すると、デフォルト値の 10が取得されます。 。ここで10 良さの値または優先度です。ニースの値の範囲は-20 (プロセスに最も有利)から 19 (プロセスに最も不利)。簡単に言うと、負の値(例:-20)はプロセスの優先度が高く、正の値(例:19)は優先度が低くなります。
それでは、コマンドを使用して実行中のプログラムcmusを停止しましょう:
$ kill -9 13829
ここで、13829はcmusプログラムのPIDです。この値は、上記の出力の「PID」という見出しの下に表示されます。
次に、「nice」ユーティリティを使用してcmusプログラムを実行します。
$ nice cmus &
次のコマンドで実行中のプロセスを確認します:
$ ps -al
出力例:
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD 0 T 1000 13957 13704 0 90 10 - 55815 signal pts/0 00:00:00 cmus 0 R 1000 13985 13704 0 80 0 - 8148 - pts/0 00:00:00 ps
優れたユーティリティでプロセスを開始する
ほら、cmusプロセスがデフォルトのniceness値 10を取得しました 、これは優先度が変更されたことを意味します。
優先度の低い優れたユーティリティでプロセスを開始します
また、 15 など、特定の適切性の値を使用して同じプロセスを開始することもできます。 、以下のように。
killコマンドを使用してプロセスを強制終了します:
$ kill -9 13957
繰り返しになりますが、niceness値15でプロセスを開始します:
$ nice -15 cmus &
注: ここで、-を混同しないでください (ハイフン)マイナス付き。 -を使用します (ハイフン)値を渡します。したがって、正の値を割り当てるには、-15を使用します。同様に、負の値を割り当てるには、--15(つまり、ダブルハイフン)を使用します。
ps -alコマンドを使用してniceness値を確認しましょう:
$ ps -al
出力例:
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD 0 T 1000 14060 13704 0 95 15 - 55815 signal pts/0 00:00:00 cmus 0 R 1000 14069 13704 0 80 0 - 8148 - pts/0 00:00:00 ps
優先度の低い優れたユーティリティでプロセスを開始します
ほら、今度はcmusプロセスが15のniceness値を取得しました。
上記の例では、優先度の低いプロセスを起動しました。 正の優しさの値は優先度が低いことを表すことを忘れないでください 。
優先度の高いNiceユーティリティを使用してプロセスを開始する
負の優しさの値がより高い優先順位を表すことはすでにご存知でしょう。 通常のユーザーは、より高い優先度でプロセスを開始することはできません。優先度の高いプロセスを起動するには、rootユーザーである必要があります 。
したがって、優先度の低い優れたユーティリティを使用してプロセスを開始するには、たとえば -15 、次のコマンドを実行します:
# nice --15 cmus &
出力例:
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD 4 S 0 14331 14306 0 80 0 - 20531 poll_s pts/0 00:00:00 sudo 4 S 0 14332 14331 0 80 0 - 13796 wait pts/0 00:00:00 su 4 S 0 14333 14332 0 80 0 - 5736 wait pts/0 00:00:00 bash 4 T 0 14358 14333 0 65 -15 - 55643 signal pts/0 00:00:00 cmus 0 R 0 14366 14333 0 80 0 - 8148 - pts/0 00:00:00 ps
優先度の高いNiceユーティリティでプロセスを開始する
-nオプションを使用してプロセスを開始します
-nを使用することもできます 優先度を増減するオプション。
優先度を上げるには、次のコマンドを rootとして実行します。 ユーザー:
# nice -n -15 cmus &
優先度を下げるには、次のコマンドを通常として実行します。 ユーザー:
$ nice -n 15 cmus &ダウンロード -無料の電子書籍:「AmazonS3チュートリアル」
Reniceコマンドで実行中のプロセスの優先度を変更する
これまで見てきたことは、ユーザー定義の優先順位でプロセスを開始したことです。次に、reniceコマンドを使用して実行中のプロセスの優先度を変更します。
コマンドを使用して実行中のプロセスを見てみましょう:
$ ps -al
出力例:
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD 0 T 1000 15059 14306 0 95 15 - 55815 signal pts/0 00:00:00 cmus 0 R 1000 15066 14306 0 80 0 - 8148 - pts/0 00:00:00 ps
上記の出力でわかるように、cmusは低い優先度の値15で実行されています。
実行中のプロセスの現在のniceness値を変更するには、たとえば 18 、次のコマンドを実行します:
$ renice -n 18 -p 15059
ここでは、 15059 cmusプロセスのプロセスIDです。
サンプル出力は次のようになります:
15059 (process ID) old priority 15, new priority 18
次のコマンドを使用して、適切性の値を確認します。
$ ps -al
サンプル出力:
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD 0 T 1000 15059 14306 0 98 18 - 55815 signal pts/0 00:00:00 cmus 0 R 1000 15074 14306 0 80 0 - 8148 - pts/0 00:00:00 ps
負のniceness値に変更するには(より高い優先度を割り当てるため)、次のコマンドを rootとして実行します。 ユーザー:
# renice -n -20 -p 14749
以下のように、特定のグループに属するすべての実行中のグループの優先順位を変更することもできます。
# renice -n -20 -g ostechnix
上記のコマンドは、 ostechnixというグループに属する実行中のすべてのプロセスの優先度を変更します 。
また、 sk など、特定のユーザーが所有する実行中のプロセスの優先度を変更することもできます。 、コマンドを使用:
# renice -n -20 -u sk
その他のオプションについては、niceおよびreniceユーティリティのマニュアルページを参照することをお勧めします。
$ man nice
$ man renice
推奨される読み物:
- Linuxでプロセスが実行されている期間を確認する方法
- LinuxでProcsを使用してプロセス情報を表示する方法
Linuxプロセスとは何か、そして素敵なユーティリティとreniceユーティリティを使用して優先度を変更する方法についての基本的なアイデアを理解していただければ幸いです。お役に立てば幸いです。