setpriority
またはNice
またはrenice
でプロセスの良さを変更できることを私は知っています。
しかし、Linuxはユーザー入力なしでプロセスの良さを自動的に調整/変更しますか?
次のように、Cでsetpriority
を使用するプロセスがあります。
setpriority(PRIO_PROCESS, 0, -1)
プロセスが実行されているとき、htopを実行すると、そのniceness値が-1になっていることがわかります。
リモートマシンでのクラッシュを調査しているときに、htopの出力が提供されました。このプロセスのniceness値が、あるインスタンスで0に、別のインスタンスで6に変更されていることに気付きました。これがカーネルによって変更されたのか、それともこの値を変更する唯一の方法がユーザーを持つことであるのかを知りたいのですが。またはスクリプトが意図的に変更を加えます。
私の知る限り、Linuxカーネルはプロセスの素晴らしさを変えません。また、プロセスの優先度を下げる必要がないため、なぜそうなるのかわかりません。素晴らしさは、カーネルに与えられる情報であり、そのプロセスがどれほど素晴らしかったかを示します。カーネルスケジューラは、プロセスの優先度を変更するために、この情報を自由に考慮に入れることができます。値を変更する必要はありません。
一方、ユーザーランドには、 [〜#〜] and [〜#〜] のようなデーモンがあり、そのタスクは、管理者によって設定されたルールに従ってプロセスを解放することです。そのようなデーモンがサーバーにインストールされていますか?
ただし、ANDデーモンはrootが所有するプロセスを解放しません。また、setpriority()
で-1
の優先度を設定したため、ここではこれが当てはまると思います。したがって、その良さの変化について私が見る唯一の理由は、ユーザーの操作です。
とはいえ、htop
を使用しているため、を押すと、プロセスが誤って削除された可能性があります。 ] キーまたは F8 キー。