Linuxでのプロセスの管理は、優れたシステム管理者なら誰でも知っておくべき基本的な概念です。これらのプロセスで行う作業の大部分は、プロセスの開始と停止、プロセスの検索、強制終了などの基本的な反復タスクで構成されています。
あまり頻繁ではない場合、システムリソースの割り当てのために、プロセスを並べ替える必要がある場合があります。これらの状況が発生したとき、私たちの多くはこれを行うための最も効率的な方法を見つけるために私たちのお気に入りの検索エンジンに行きます。検索アルゴリズムによってSysadminを有効にすることができたので、探している答えを提供しましょう。
優先度の決定方法を分析し、それらの値を操作する方法を以下に示します。
プロセスの優先順位と相対性理論
Linuxシステムは、コンピューター内の処理装置よりも多くのプロセスを日常的に実行します。このため、プロセススケジューラは、単一のコア上のプロセス間をすばやくジャンプし、複数の同時プロセスを実行しているように見せかけます。
実際には、各プロセスにはプロセススケジューリングポリシーが割り当てられています。このポリシーには、 niceの測定に使用される40ポイントのスケールがあります。 プロセスのレベル。ニースレベルは、プロセスの相対的な優先順位を表す測定単位です。良さのレベルについて説明するときは、スケールが-20(最高の優先度)から19(最低の優先度)であり、プロセスが親からその良さのレベル(ほとんどの場合0)を継承することに注意してください。
[次のこともお楽しみいただけます:Linuxコマンドの基本:プロセス管理用の7つのコマンド]
これで、プロセスの正常性レベルが低い(氷点下)場合、CPU使用率を放棄する可能性は低くなります(あまり良くない それは...ですか?)。反対に、niceness値が高い(ゼロを超える)プロセスは、CPU使用率を放棄する可能性が高くなります。
これを覚える簡単な方法は、誰か(またはプロセス)が本当に素晴らしい場合、他の人と共有する傾向が強いことです。それらがあまり良くない場合、それらはそれらに属するもの(この場合はCPUリソース)に対してより保護的である傾向があります。
また、リソースが不足していない場合は、適切性レベルが高いプロセスでも、使用可能なすべてのCPU時間を使用します。プロセスがリソースを生成するのは、帯域幅が不足しているときだけです。
優先レポート
プロセスの優先順位を取り巻くすべてのコンテキストがわかったので、ターミナルでこの情報を表示する方法をいくつか見てみましょう。
優しさの情報を表示する最も速くて最も基本的な方法は、top
を使用することです。 指図。この情報はデフォルトで4番目の列(左から右)に表示されるため、追加のオプションやフラグは必要ありません。
もう1つのもう少し複雑な方法は、ps
を使用することです。 フォーマットオプションの寛大な助けを借りてコマンド。次のコマンドは、プロセスID、名前、適切性レベル、およびスケジューリングクラス(降順で並べ替え)とともにプロセスを表示します。
[tcarrigan@localhost ~]$ ps axo pid,comm,nice,cls --sort=-nice
今すぐリアルタイム:
既存の良さを操作する
これで、既存のプロセスの優れた点を確認する方法がわかりましたが、その優れたレベルがニーズに合わない場合はどうでしょうか。システムを最大限に活用するために、これらの値をどのように変更できますか?他の場所で必要なリソースを使い果たしている特定のプロセスがある場合は、その特定のプロセスの適切なレベルを下げることができます。これを行うには、renice
を使用します コマンド。
注 :のみ rootユーザーは、優しさのレベルを下げる(優先度を上げる)ことができます。特権のないユーザーは、適切なレベルを上げることができますが、root権限がないとレベルを下げることはできません。
このsleep 500
をご覧ください 処理する。 PIDは23990で、デフォルトのniceレベルは0です。
[tcarrigan@localhost ~]$ ps -o pid,comm,nice 23990
PID COMMAND NI
23990 sleep 0
そのプロセスの優先度を低くしたい場合は、次のrenice
を使用します。 コマンド:
プロセスをより重要にする(niceレベルを下げる)には、特権ユーザーと同じコマンド構文を使用します。
[無料のチートシート:Kubernetes用語集]
最後にもう1つ
さて、まとめる前に、ここに含めたいトリックがもう1つあります。通常は望ましくないデフォルトのniceレベルを持つプロセスを開始する場合は、プロセスを生成するときにそのパラメーターを実際に設定できます。 sleep
を使用します もう一度コマンドします。ただし、今回はnice
で作成します コマンド(デフォルトでプロセスはniceレベル10になります)。
次の構文で同じコマンドを使用して、特定の適切なレベルを設定できます。
[tcarrigan@localhost ~]$ nice -n 19 sleep 500 &
上記のコマンドは、バックグラウンドのsleep 500
を設定します 19の素晴らしいレベルに。
これらのコマンドは、学び、披露するのがとても楽しかったです。将来、システムリソースや空腹のプロセスで問題が発生した場合、それらに割り当てられたリソースを変更できます。