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?
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.
Puoi usare il comando:
renice -n # PID
Dove:
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.
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.
renice 20 $(pgrep ImageOptim)
Oppure usa il nome del tuo programma invece di ImageOptim
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:
brew install htop
in Terminalehtop
per vedere e gestire i processi in Terminal o Sudo htop
per coprire tutto il sistema.