Mac OS Xでプロセスの優先度を設定する方法はありますか?


48

Mac OS Xで100%CPUで実行されているバックグラウンドプロセスがあります。他のすべてのアプリケーションは、そのため非常に低速です。

私のアプリケーションをより良く実行できるように、このプロセスを50%以下に設定したいと思います。これどうやってするの?

回答:


48

コマンドライン(Terminal.appまたは何でも)niceからandを使用しますrenice。他のUNIXと同じです。

niceプロセスを起動するときに使用します。

nice -n <priority> <command> <arguments to command>

デフォルトの優先度はゼロであり、正の値は「より低い」(つまり低い優先度)であり、負の値は「それほど良くない」(より高い優先度)です。Mac OSは+10から-10まで動作するようです。

reniceすでに実行中のプロセスの優先度を変更するために使用します(renice10.5のマニュアルページから):

renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]  
renice -n increment [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]

ここで興味のある部分はpid少しです。これがジョブのプロセスIDでありps -u <your username>、プロセス名を使用して検索することができますがtop -o、この場合は、興味のあるプロセスが最上部近くにあるため、この方法をお勧めします。

注:スーパーユーザー特権がないと、プロセスの優先順位を上げることはできません。通常のユーザー向けでniceありrenice、一方通行です。また、優先順位の小さな変更は、実行時間に大きな影響を与える可能性があります。そのため、理解するまで簡単に進めてください。


そして、すでに実行中のプロセスでどのようにできますか?これは、2時間にわたって実行していると私は再びそれを起動し、処理の私の2時間を失いたくない
ダニエルCukier

15

次のコマンドを使用できます。

renice -n # PID

どこ:

  • は0より大きくする必要がある数値です(そうでない場合は、プロセスをより高い優先度に移動します)
  • PIDは、topターミナルアプリ(utilities / terminal.app)に入力して表示できるプロセスIDです。

システムプロセスまたは別のユーザープロセスの場合は、次のように入力する必要があります。

sudo renice -n 10 PID

パスワードを求められます(sudoerの場合)。番号については、10または19(さらに低い優先度)をお勧めします。

これにより、CPU使用率ではなく優先順位が変更されることに注意してください。CPUを必要とする他のプロセスを実行していない場合、またはMac(Core 2 Quad Core)に複数のCPUがある場合、プロセスはCPUの100%を使用する可能性があります。


6
renice 20 $(pgrep ImageOptim)

または、ImageOptimの代わりにプログラムの名前を使用します


1
さらに、使用renice -20すると、たとえばオクターブのような大きなプログラムをコンパイルする場合に、プロセスに可能な限り高い優先順位が与えられます。renice 20プロセスに最低の優先順位を与えます。
-nyxee

5

また、無料のBeNicerとProcess Wizard(以前のお気に入り)、Freezerの $ 1.99バージョン(私のお気に入り)などのGUIユーティリティも多数あります。これらはすべて、実行中のアプリケーションで機能します。


3
BeNicerとProcess WizardはどちらもPowerPCアプリであり、OSXの最新バージョンでは実行されません
arolson101

Freezerはまだ新しいOSリリースで動作していますか?
イルミナート

AppPolice
JacopKane

2
  • プロセスがシステムプロセスではなくアプリまたはアプリヘルパーユーティリティであり、実行したくないnice場合renice、またはシステムを起動するたびにAppPoliceにショットを与えることができます。オープンソースで無料です。こちらからダウンロードできます。

  • 別の選択肢は、と呼ばれる非常に素晴らしいコマンドラインタスクマネージャGUI htopです。あなたは、すべてのプロセスと調整する彼らの見ることができるnice値でF7としてF8ショートカットを。 (負のnice値は正の値より優先順位が高く、反対の値であることに注意してください)

それをインストールするには:

  • homebrewをまだインストールしていない場合はインストールしてください。
  • brew install htopターミナルでこのコマンドを実行します
  • これhtopで、ターミナルでプロセスを表示および管理したりsudo htop、すべてのシステムをカバーしたりすることができます。

0

アプリのPLISTファイル内の変数を使用して、デーモンのnice値(優先順位)を永続的に設定できます。ターミナルウィンドウでMAN plistと入力する方法を確認するには。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.