Gibt es eine Möglichkeit, die Priorität eines Prozesses in Mac OS X festzulegen?

68493
Daniel Cukier

Ich habe einen Hintergrundprozess, der unter Mac OS X bei 100% CPU läuft. Alle anderen Anwendungen sind deswegen sehr langsam.

Ich möchte, dass dieser Prozess nicht mehr als 50% beträgt, damit meine Anwendungen besser ausgeführt werden können. Wie kann ich das machen?

43

5 Antworten auf die Frage

44
dmckee

Von der Kommandozeile ( Terminal.appoder was auch immer) verwenden niceund renice, genau wie bei anderen Unixen.

Verwendung nicebeim Starten eines Prozesses:

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

Die Standardpriorität ist Null, positive Werte sind "schöner" (das ist eine niedrigere Priorität) und negative Werte sind "weniger schön" (höhere Priorität). Sieht aus wie Mac OS läuft von +10 bis -10.

Verwenden Sie renicediese Option, um die Priorität eines bereits laufenden Prozesses zu ändern (von der reniceManpage zu 10.5):

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

Der Teil, den Sie hier interessiert, ist das pidbisschen. Dies ist die Prozess-ID für den Job, und Sie können ihn anhand ps -u <your username>des Prozessnamens finden und suchen. top -oIn diesem Fall bevorzuge ich jedoch, da der Prozess, an dem Sie interessiert sind, ganz oben liegt.

Hinweis: Ohne Superuser-Berechtigungen können Sie die Priorität eines Prozesses niemals erhöhen. Für normale Benutzer niceund reniceEinbahnstraßen. Kleine Änderungen in der Priorität können große Auswirkungen auf die Laufzeit haben. Also mache es dir so leicht, bis du es verstanden hast.

Und wie kann ich mit einem bereits laufenden Prozess umgehen? Es läuft 2 Stunden und ich möchte es nicht noch einmal starten und habe meine 2 Stunden Bearbeitung verloren Daniel Cukier vor 15 Jahren 0
14
pietro Sormanni

Sie können den Befehl verwenden:

renice -n # PID 

Woher:

  • # ist eine Zahl, die größer als 0 sein sollte (andernfalls verschieben Sie Ihren Prozess mit höherer Priorität)
  • PID ist die Prozess-ID, die Sie durch Eingabe topin der Terminal-App (Dienstprogramme / terminal.app) anzeigen können.

Wenn es sich um einen Systemprozess oder einen anderen Benutzerprozess handelt, sollten Sie Folgendes eingeben:

sudo renice -n 10 PID 

Sie werden nach Ihrem Passwort gefragt (wenn Sie Sudoer sind). Als Nummer würde ich 10 oder 19 empfehlen (sogar niedrigere Priorität).

Beachten Sie, dass dies die Priorität und nicht die CPU-Auslastung ändert. Wenn Sie keine anderen Prozesse ausführen, für die eine CPU erforderlich ist, oder wenn Sie mehr als eine CPU (Core 2 Quad Core) auf Ihrem Mac verwenden, wird der Prozess möglicherweise immer noch zu 100% ausgelastet.

4
beiju

Es gibt auch eine Reihe von GUI-Dienstprogrammen, wie den kostenlosen BeNicer und Prozess-Assistenten (meinen vorherigen Favoriten) und die $ 1.99-Version von Freezer, die meinen neuen Favoriten darstellt. All dies funktioniert beim Ausführen von Anwendungen.

BeNicer und Process Wizard sind beide PowerPC-Apps und können nicht unter den neuesten Versionen von OSX ausgeführt werden arolson101 vor 11 Jahren 3
Funktioniert Freezer noch in neueren Betriebssystemversionen? ylluminate vor 7 Jahren 0
Bitte überprüfen Sie meine Antwort auf eine andere Alternative, AppPolice JacopKane vor 6 Jahren 0
3
William Entriken
renice 20 $(pgrep ImageOptim) 

Oder verwenden Sie den Namen Ihres Programms anstelle von ImageOptim

Darüber hinaus gibt Renice -20 einen Prozess mit der höchstmöglichen Priorität an, zum Beispiel beim Kompilieren eines großen Programms wie der Oktave. "renice 20" gibt einem Prozess die niedrigste Priorität. nyxee vor 7 Jahren 1
0
JacopKane
  • Wenn es sich bei Ihrem Prozess nicht um einen Systemprozess handelt, sondern um ein Hilfsprogramm für eine App oder ein App-Hilfsprogramm, das Sie nicht tun möchten, niceoder renicebei jedem Systemstart, können Sie AppPolice eine Chance geben . Es ist Open Source und kostenlos. Sie können es hier herunterladen .

  • Eine andere Alternative wäre eine sehr nette Befehlszeilen-Task-Manager-GUI htop. Sie können alle Prozesse sehen und ihre niceWerte mit F7und und F8Verknüpfungen anpassen. (Bitte beachten Sie, dass negative niceWerte für positive Werte mehr Priorität haben und umgekehrt sind.)

Um es zu installieren:

  • Installieren Sie Homebrew, wenn Sie es noch nicht haben.
  • Führen Sie diesen Befehl brew install htopin Terminal aus
  • Jetzt können Sie htopProzesse in Terminal anzeigen und verwalten oder sudo htopdas gesamte System abdecken.