タグ付けされた質問 「nice」

プロセスの優先順位を変更して、CPU時間を増減するツール。

3
プロセスの優れた価値を高めるためにreniceを使用できないのはなぜですか?
からman renice: スーパーユーザー以外のユーザーは、所有するプロセスの優先度のみを変更でき、0からPRIO_MAX(20)の範囲内で(セキュリティ上の理由で) `` nice value ''を単調に増加させることしかできません [...] したがって、私はrenice自分のプロセスを上向きにすることができます(優先順位を低くします)が、下向きにすることはできません: $ renice 10 22316 22316 (process ID) old priority 0, new priority 10 $ renice 9 22316 renice: failed to set priority for 22316 (process ID): Permission denied どうしてこれなの?通常のユーザーが0未満のナイス値を設定できない理由を理解できますが、なぜ優先順位を10に下げることができるのに再び9に上げることができないのですか?これにはどのような「セキュリティ上の理由」がありますか?私は、9という素晴らしい値を持つプロセスを起動する権利を持っているのに、なぜ9までそれを放棄できないのですか? 編集:私は下にスクロールすることを学ぶ必要があります。これがバグとしてリストされていることがわかりman reniceます: BUGS Non super-users can not increase scheduling priorities of their …
25 nice  priority 

5
Linux上の1つのプロセスのすべてのスレッド(および子)を放棄する方法は?
Linuxは(まだ)POSIX.1標準に従っていないと言うことreniceに従っているため、プロセス上は、「プロセス内のすべてのシステム・スコープ・スレッド」に影響をpthreadsの(7)DOC「のスレッドが共通の素敵な値を共有しません」。 ただし、renice特定のプロセスに関連する「すべて」が便利な場合もあります(1つの例は、Apacheの子プロセスとそのすべてのスレッドです)。そう、 特定のプロセスに属するreniceすべてのスレッドをどのようにすればよいですか? 特定のプロセスに属するreniceすべての子プロセスはどうすればよいですか? 私はかなり簡単な解決策を探しています。 私はことを知っているプロセスグループは、時には役に立つことができ、しかし、彼らはいつも私が何をしたいのか一致しません:彼らはプロセスのより広範または異なるセットを含めることができます。 cgroupマネージドを使用することsystemdも役立つかもしれませんが、それについて聞いてみたいと思っても、ほとんどの場合「標準」ソリューションを探しています。 編集:また、man (7) pthreads「プロセス内のすべてのスレッドは同じスレッドグループに配置されます。スレッドグループのすべてのメンバーは同じPIDを共有します」。それで、それreniceがそれ自身のPIDを持っていない何かにさえ可能ですか?
22 linux  process  nice  thread 

2
なぜnicenessが-20から19の範囲にあるのですか?
このniceコマンドを使用すると、プログラムのスケジューリングの優先順位(「ナイスネス」)を調整できます。私が使用したすべてのUnixライクシステムでは、ナイスネスは整数の範囲で指定されます。-20が最も好ましいスケジューリング優先順位、0がデフォルト、19が最も好ましくありません。 デフォルトのナイスネスとして0を使用するのは十分直感的ですが、なぜ範囲のエンドポイントとして-20と19が選択されたのですか?なぜ-128と127は、符号付き8ビットバイトにぴったり収まるのでしょうか?あるいは、小数の人間にとってより直感的な-100から100、または同様に、しかし人間工学的には-99から99である-100から100でないのはなぜですか?-20から19の範囲は任意に選択されましたか、それともnice最初にインターフェースをとったスケジューラーの内部と何らかの関係がありますか?(少なくともLinuxでは、スケジューラーが0から139の範囲の優先順位を使用するため、そのような関係は今日ないことを理解しています。しかし、-20から19の範囲の歴史的な理由に興味があります。)

1
素敵な子プロセス
誰かが指定されたniceレベルと子プロセスの関係を教えてもらえますか? たとえば、デフォルトniceのを持ち、で0スクリプトを開始するとnice 5、いくつかの子プロセス(この場合は約20)が開始され、子プロセスの利点は何ですか?
22 linux  process  nice 

1
良い仕事はどうですか?
sched_setschedulerのコメント: すべてのスケジューリングはプリエンプティブです。より高い静的優先度を持つプロセスが実行可能になると、現在実行中のプロセスがプリエンプトされ、静的優先度レベルの待機リストに戻ります。 ながらのsetpriorityは言います これにより、ナイス値が非常に低く(+19)、システムに他の優先度の高い負荷がある場合は常にプロセスにほとんどCPUを提供せず、高いナイス値(-20)を必要とするアプリケーションにほとんどのCPUを提供します では、ナイス値をどのように変更すると、プログラムの実行に影響するのでしょうか?RTスケジューリング(ナイス値の高いプログラムがナイス値の低いプログラムを中断する)に似ていますか? インターネット上のすべての情報は、使用方法nice、およびプロセスの優先度を変更する方法です。優先度の異なるプロセスがどのように機能するかを説明するリンクはありません。ソースコードすら見つかりませんでした。

2
niceness値(-)はどういう意味ですか?
マニュアルページおよびウィキペディアによると、nice-20〜20の範囲。 それでも、次のコマンドを実行すると、一部のプロセスに(-)などの非数値が含まれていることがわかります。タイトルが「NI」の左から6番目の列を参照してください。 (-)の良さは何を示していますか? ps axl F UID PID PPID PRI NI VSZ RSS WCHAN STAT TTY TIME COMMAND 4 0 1 0 20 0 19356 1548 poll_s Ss ? 0:00 /sbin/init 1 0 2 0 20 0 0 0 kthrea S ? 0:00 [kthreadd] 1 0 3 2 -100 - …

7
-20のnice値でプロセスを開始し、root権限を与えないようにするにはどうすればよいですか?
-20の素晴らしい値でプロセスを開始したいと思います。これには、-のようなコマンドを使用する必要がありますsudo nice -n -20 matlab。ただし、これはmatlabをルートとしても起動します。matlabを非ルートとして使用する方法はありますか? 私の現在のアプローチは-- sudo nice -n -20 sudo -u myusername matlabそれは、私にはハックのように見えます。これを行うための直接的なアプローチはありますか?
18 process  priority  nice 

3
パイプコマンドにナイスネスを設定する
ナイスネスレベルを変更した一連の「パイピング」コマンドを実行する必要があります。例: nice -n 15 command1 | command2 | command3 この場合、nice1はcommand1に対してのみ「15」に変更されます。コマンドのセット全体(command1、command2、command3)で変更するにはどうすればよいですか?
15 nice 

2
デスクトップコンテキストでのsystemdスケジューリング関連オプションの使用と理解
systemdサービスファイルでは、次のスケジュール関連オプションを設定できます(systemd.execmanページから、間違っている場合は修正してください)。 Nice 実行されたプロセスのデフォルトのniceレベル(スケジューリング優先度)を設定します。-20(最高の優先度)から19(最低の優先度)の間の整数を取ります。詳細については、setpriority(2)を参照してください。 おなじみのいいレベルです。最近のLinuxカーネルの「オートグループ」機能により、その効果はいくぶん「覆された」ようです。したがって、以下のオプションは、デスクトップエクスペリエンスでプロセスが適切に動作し続けるように設定したいものです。 CPUSchedulingPolicy 実行されたプロセスのCPUスケジューリングポリシーを設定します。その他、バッチ、アイドル、FIFO、またはRRのいずれかを取ります。詳細については、sched_setscheduler(2)を参照してください。 CPUSchedulingPriority 実行されたプロセスのCPUスケジューリング優先順位を設定します。使用可能な優先度の範囲は、選択したCPUスケジューリングポリシーによって異なります(上記を参照)。リアルタイムスケジューリングポリシーでは、1(最低の優先度)から99(最高の優先度)までの整数を使用できます。詳細については、sched_setscheduler(2)を参照してください。 CPUSchedulingResetOnFork ブール引数を取ります。trueの場合、実行されたプロセスがフォークすると、CPUスケジューリングの優先順位とポリシーの昇格がリセットされるため、子プロセスにリークすることはできません。詳細については、sched_setscheduler(2)を参照してください。デフォルトはfalseです。 最後のオプションを理解しました。最初の2つの説明から、スケジューリングポリシーを選択し、そのポリシーを優先することができると説明しました。どの種類のタスクのために何を選択すべきかは、私には完全に明確ではありません。たとえば、バックアップタスクに「アイドル」を選択しても安全ですか(重複排除のために比較的CPUに負荷がかかります)、それとも別の方が適していますか? 一般に、各ポリシーの概要と、その優先順位と特定の目的への適合性を理解することは、私が探しているものです。niceレベルとの相互作用も興味深いものです。 CPUスケジューリングの次に、IOスケジューリングがあります。これはionice(間違っている場合は修正してください)に相当すると思います。 IOSchedulingClass 実行されたプロセスのI / Oスケジューリングクラスを設定します。0〜3の整数、またはnone、realtime、best-effort、idleのいずれかの文字列を取ります。詳細については、ioprio_set(2)を参照してください。 IOSchedulingPriority 実行されたプロセスのI / Oスケジューリング優先順位を設定します。0(最高の優先順位)から7(最低の優先順位)までの整数を取ります。使用可能な優先度は、選択したI / Oスケジューリングクラスによって異なります(上記を参照)。詳細については、ioprio_set(2)を参照してください。 ここでは、CPUスケジューリングと同じ構造が表示されます。同じ種類の情報も探しています。 すべての「スケジューリング」オプションについて、参照されたマニュアルページは私にとっては十分に明確ではありません。ほとんどは、技術的にやや傾けられたデスクトップユーザーの視点に物事を翻訳することにおいてです。

4
Linuxプロセスを非常に低い優先度で実行しますか?
私はそれほど重要ではないがCPUパワーを大量に消費する通常のプロセスがあります。また、非常に重要な別のプロセスがありますが、ほとんどの時間はアイドル状態ですが、仕事を得たときは本当に高い計算能力が必要です で実行しnice -20 ./low_priority_processてみましnice --20 ./high_priority_processたが、優先度の高いプロセスが必要な場合は、優先度の低いプロセスが大量のCPUを消費します。CPUパワーを使用している別のプロセスが実際に生成または自動中断するプロセスを実行するにはどうすればよいですか。
12 process  cpu  htop  priority  nice 

2
どうすればユーザーがプロセスに負の優しさを優先させることができますか?
ユーザーがシステムで特定のプロセスを実行して、負のnice値を指定してほしい。この特定のプログラムはminecraftサーバーであり、サーバーの制御はコマンドラインに依存しているため、プロセスを単純にバックグラウンドにフォークすることはできません。 私の現在のbashスクリプトは次のようになります(重要な部分): sleep 10 && \ sudo renice -n $NICENESS $(ps -u $(id -u) -o "%p:%c" | sed -n "s/:java$//p") & \ java -Xmx8G -Xms2G -jar minecraft_server.jar nogui sleep単にの実行を遅らせreniceます。reniceそれ自体がps、ユーザー自身のIDを使用してJavaプロセスをチェックするために使用します。さまざまなユーザーの下でJavaが生成される他のインスタンスが存在する可能性がありますが、minecraftサーバーは独自のユーザーminecraftで実行されます。 サーバーを起動するたびにパスワードを入力したくないのは明らかです。 以下からの/ etc / sudoersファイル: minecraft ALL = NOPASSWD: /etc/renice これを行うよりエレガントな方法はありますか?NOPASSWDと組み合わせて、単に使用することniceはオプションではありません。オプションは大きなセキュリティ問題になります。sudo nice bash

2
特定のユーザーにデフォルトのnice値を設定します(limits.conf)
誰かがユーザーのnice(によって表示されるtop)のデフォルト値を設定する方法を教えてもらえますか?/etc/security/limits.confが場所であることがわかりましたが、次のいずれかを指定した場合: username_of_a_guy - nice 19 username_of_a_guy soft nice 19 username_of_a_guy hard nice 19 動作しません(動作するはずですが、正しいですか)。 それ以来、私は再起動していることに注意してください。 ありがとう非常に多くの任意の助けを事前に。私はdebian不安定版(最新版)を使用しています。 環境: 私の仕事では、ローカルネットワークがあります。つまり、誰もが自分のコンピューターを所有しており、必要に応じて誰でも他の人のマシンにアカウントを作成できます。経験則として、他のコンピュータで作業している場合は、プロセスを適切に処理してください(nice 19)。 特定のユーザーのデフォルトのnice値を19に設定したいと思います。
12 login  nice  limit 


2
Unixコマンドで可能な最も良いものは何ですか?
クイックベンチマークテストでは、niceとioniceを組み合わせて最大の効果を得るにはどうすればよいですか。 (これは `nice -n 19 ionice -c 2 [コマンド]のようなものだと思いますが、ioniceの" -n "(classdata param)についてはわかりません。manページはその関連性について謎めいています。)

2
すべてのプロセスをniceness 5で開始するにはどうすればよいですか
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
8 users  settings  nice 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.