Esiste un modo per impostare la priorità di un processo in Mac OS X?


48

Ho un processo in background al 100% della CPU su Mac OS X. Tutte le altre applicazioni sono molto lente a causa di ciò.

Vorrei impostare questo processo in modo che non superi il 50% in modo che le mie applicazioni possano funzionare meglio. Come posso fare questo?

Risposte:


48

Dalla riga di comando ( Terminal.appo qualsiasi altra cosa) usa nicee renice, proprio come su altri unix.

Utilizzare niceall'avvio di un processo:

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

La priorità predefinita è zero, i valori positivi sono "più belli" (ovvero una priorità più bassa) e i valori negativi sono "meno carini" (priorità più alta). Sembra che Mac OS funzioni da +10 a -10.

Utilizzare reniceper modificare la priorità di un processo già in esecuzione (dalla renicepagina man su 10.5):

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

La parte che ti interessa qui è la parte pid. Questo è l'id del processo per il lavoro e puoi trovarlo usando ps -u <your username>e cercando il nome del processo, ma preferisco top -oin questo caso, perché il processo che ti interessa sarà quasi all'inizio.

Nota: senza i privilegi di superutente non è possibile aumentare la priorità di un processo. Per utenti normali nicee renicesono strade a senso unico. E piccoli cambiamenti di priorità possono avere grandi effetti sul tempo di esecuzione. Quindi andate piano con questo fino a quando non lo capirete.


E come posso fare con un processo già in esecuzione? È in esecuzione per 2 ore e non voglio riavviarlo e perdere le mie 2 ore di elaborazione
Daniel Cukier,

15

Puoi usare il comando:

renice -n # PID

Dove:

  • # è un numero che dovrebbe essere maggiore di 0 (altrimenti il ​​processo verrà spostato su priorità più alta)
  • PID è l'ID del processo che è possibile visualizzare digitando topsull'app del terminale (utilities / terminal.app)

Se si tratta di un processo di sistema o di un altro processo utente, è necessario digitare:

sudo renice -n 10 PID

Ti chiederà la tua password (se sei sudoer). Per quanto riguarda il numero, consiglierei 10 o 19 (priorità anche inferiore).

Si noti che questo cambierà la priorità e non l'utilizzo della CPU. Se non stai eseguendo altri processi che richiedono CPU o hai più di una CPU sul tuo Mac (Core 2 Quad Core), il processo potrebbe comunque utilizzare il 100% della CPU.


6
renice 20 $(pgrep ImageOptim)

Oppure usa il nome del tuo programma invece di ImageOptim


1
Inoltre, l'utilizzo renice -20dà a un processo la massima priorità possibile, ad esempio durante la compilazione di un grande programma come l'ottava. renice 20dà a un processo la priorità più bassa.
nyxee,

5

Ci sono anche una serie di programmi di utilità per la GUI, come BeNicer e Process Wizard gratuiti (il mio preferito in precedenza) e la versione da $ 1,99 di Freezer , che è il mio nuovo preferito. Tutti questi funzionano su applicazioni in esecuzione.


3
BeNicer e Process Wizard sono entrambe app PowerPC e non funzioneranno con le versioni recenti di OSX
arolson101

Freezer funziona ancora con le versioni più recenti del sistema operativo?
Ylluminate

controlla la mia risposta per un'altra alternativa, AppPolice
JacopKane,

2
  • Se il tuo processo è un'utilità di supporto per app o app piuttosto che un processo di sistema e non vuoi farlo niceo renicead ogni avvio del sistema puoi provarlo con AppPolice . È open source e gratuito. Puoi scaricarlo qui .

  • Un'altra alternativa sarebbe una GUI del task manager della riga di comando molto bella chiamata htop. È possibile visualizzare tutti i processi e ottimizzare i loro nicevalori tramite F7e e F8collegamenti. (Si noti che i nicevalori negativi sono più prioritari e opposti per i valori positivi)

Per installarlo:

  • Installa homebrew se non lo hai ancora.
  • Esegui questo comando brew install htopnel Terminale
  • Ora puoi fare htopper vedere e gestire i processi in Terminal o sudo htopper coprire tutto il sistema.

0

Puoi impostare il valore gradevole (priorità) per il demone in modo permanente usando la variabile nel file PLIST per l'app. Per scoprire come digitare MAN in una finestra del terminale.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.