it-swarm-eu.dev

C'è un modo per impostare la priorità di un processo in Mac OS X?

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

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

44
Daniel Cukier

Dalla riga di comando (Terminal.app o qualsiasi altra cosa) usa Nice e renice, proprio come su altri unix.

Utilizzare Nice all'avvio di un processo:

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

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

Utilizzare renice per modificare la priorità di un processo già in esecuzione (dalla pagina man renice 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 è il pid bit. Questo è l'id di processo per il lavoro e lo puoi trovare usando ps -u <your username> e cercando il nome del processo, ma io preferisco top -o in questo caso, perché il processo che ti interessa sarà vicino alla cima.

Nota: Senza i privilegi di superutente non è possibile aumentare la priorità di un processo. Per gli utenti normali, Nice e renice sono strade a senso unico. E piccoli cambiamenti di priorità possono avere grandi effetti sul tempo di esecuzione. Quindi vai piano su questo finché non lo capisci.

45
dmckee

Puoi usare il comando:

renice -n # PID

Dove:

  • # è un numero che dovrebbe essere maggiore di 0 (altrimenti sposterai il tuo processo su una priorità più alta)
  • PID è l'ID del processo che puoi visualizzare digitando top sull'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à ancora più bassa).

Si noti che questo cambierà la priorità 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.

14
pietro Sormanni

Ci sono anche una serie di utility GUI, come il BeNicer gratuito e Process Wizard (il mio preferito precedente), e la versione $ 1.99 di Freezer , che è il mio nuovo preferito. Tutti funzionano su applicazioni in esecuzione.

4
beiju
renice 20 $(pgrep ImageOptim)

Oppure usa il nome del tuo programma invece di ImageOptim

3
William Entriken
  • Se il tuo processo è un'utility helper app o app piuttosto che un processo di sistema e non vuoi fare Nice o renice su ogni avvio di sistema puoi dare un colpo a AppPolice . È open source e gratuito. Puoi scaricarlo qui .

  • Un'altra alternativa potrebbe essere una GUI molto semplice della GUI del task manager chiamata htop. Puoi vedere tutti i processi e mettere a punto i loro valori Nice con le scorciatoie F7 e F8. (Si noti che i valori Nice negativi sono più prioritari e opposti per i valori positivi)

Per installarlo:

  • Installa homebrew se non lo hai ancora.
  • Esegui questo comando brew install htop in Terminale
  • Ora puoi fare htop per vedere e gestire i processi in Terminal o Sudo htop per coprire tutto il sistema.
0
JacopKane