すべてのプロセスをniceness 5で開始するにはどうすればよいですか


8

niceness値は親プロセスのniceness値から継承されることは知っていますが、特定のユーザー(自分)のデフォルトのniceness値をグローバルに変更できます。

この場合、私は小さな便利なサーバーを念頭に置いていsshます。だから、私は私がから私のデフォルトのシェルを変更することができると思う/bin/bash/etc/bash5しながら、/etc/bash5このスクリプトです。

#!/bin/sh
nice -n 5 /bin/bash

#file privileges: root:root 755

これは私をひどいハックとエラーが発生しやすいと思います。もっと良い方法があるはずです。

私は主に一般的なソリューションに興味がありますが、それはデスクトップ/ラップトップシステムにも当てはまります。


編集:私は提案されたlimits.conf変更を試しましたが、期待どおりに機能しません:

root@server# addgroup nice
root@server# adduser myself nice
root@server# echo '@nice soft nice 5' >> /etc/security/limits.conf

次に、私のクライアントマシンから、

myself@client$ ssh server
myself@server$ sleep 1h &
myself@server$ htop

これで、sleepプロセスのniceness0初期値はなりますが、値F8を19 に変更してから、F7 で停止した状態5で再度値を下げてみます。

Edit2:ソリューション

niceアイテムを使用する代わりに、直感的にはわかりlimits.confませんが、実際に使用する必要がありますpriority

@nice soft priority 5

多分renice -n 5あなたの中に入れます~/.profileか?
jw013

@ jw013:それは私のbash5アプローチよりも良い考えです、私はあなたにこれを与えます。しかし、私ssh myserver -- somecommandがそれをしないと言えば、それはまだ壊れますか?
ビットマスク

@ビットマスク。の結果を再現できませんlimits.conf。あなたの出力はps -o pid,nice,cmd何ですか?
donothingsは、

1
質問を編集するのではなく、自分の問題の解決策を回答として投稿してください。ありがとう!(あなた自身の質問にあなた自身の答えを提供することは問題あり
ませ

別のメモ:これはあなたが尋ねたものではありませんが、cgroupsは、(特定のユーザーの優先度を下げた)目的よりも効果的な方法を提供する場合がありますnice
mattdm 2012

回答:


7

/etc/security/limits.confファイルで特定のユーザーの優先度を設定できます。

root       hard/soft     priority    10

このようにして、特定のユーザーに対してハードまたはソフトの制限を設定できます。したがって、このrootユーザーが開始するすべてのプロセスには、デフォルトの優先値として5があります。

ウィキペディアのページによると:

プロセスに特定のniceness値を設定することの正確な数学的効果は、そのUnixの実装でスケジューラーがどのように設計されているかの詳細に依存します。

上記の手順が機能することを示すスナップショットを次に示します。

この画像は/etc/security/limits.confファイルのスクリーンショットです

これはlimits.conf私が最後に追加した行を示すファイルのスナップショットです

root     hard     priority    15

これを変更した後、次のコマンドを使用して1つのsshセッションを開始しました ssh root@localhost

ここに画像の説明を入力してください

このスクリーンショットは、最後の二つのプロセスのnice値を示している最後の2行を表示-bashし、sshd: root@pts/315であることを。

編集する

これは、uがプロセスの良さを増減できることを示すスナップショットです ここに画像の説明を入力してください

編集2:

これは、通常のユーザーでもniceness値を変更できることを示すsnapshortです。

ここに画像の説明を入力してください


優先度ではなく、快適さについて話していました。そして、私が他の答えで述べたように、それは受け入れられていないようです。デーモンなどを再起動する必要がありますか?
ビットマスク

@bitmask:これは私の中で動作しています...私は私の応答待機にスナップショットを追加します...
pradeepchhetri

@ビットマスク:私はスナップショットで回答を更新しました.. :)
pradeepchhetri

優しさ優先度には違いがありますハードプライオリティを変更できると思いますが、ソフトナイスを変えたいです。それは別のことです。
ビットマスク

@bitmask:WikiページにAccirind、 A niceness of −20 is the highest priority and 19 or 20 is the lowest priority。だから、最初のuはそのnice値と優先順位を理解する必要がsame..And私はこれらがあることをクリアしたいhard and soft limitsが、そのないようにhard prioritysoft niceness...
pradeepchhetri

1

それはのように見え ますが、ユーザーのデフォルトの優先度を設定することができるlimits.confような行で、:

username    soft  priority  5

man limits.confを参照してください。


いいね。私はそれを(ただし特別なグループを使用して)ショットを与えた@nice soft nice 5が、sshマシンにすると実行sleep 1hnice値を有するように番組を0にしますhtop。設定が受け入れられなかった理由はありますか?私はdebian squeezeをしています。
ビットマスク

@nice上記のコメントには何がありますか。それはur linuxマシンのユーザーの1つである必要があります。
プラデープチェトリ

@pradeepchhetri:私のOPの編集を見てください。グループ名です。
ビットマスク

なぜlimits.confファイルにエントリを入れるときにグループ名の前に@を置くのですか?
プラディペチェトリ

@pradeepchhetri:manページにそう書いてあるから?
ビットマスク
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.