Me gustaría limitar la cantidad de tiempo de CPU dedicado a ciertos procesos (por ejemplo, Firefox, Safari, ...).
No puedo entender por qué tales programas, incluso cuando no se usan (sin cargar nada, sin animaciones, ejecutándose en segundo plano, ...), requieren tantos recursos. ¿Por qué un navegador debe comer el 50% o más de mi CPU? ¿Puedo limitarlo al 10%?
macos
lion
battery
performance
Pietro
fuente
fuente
Respuestas:
No es exactamente lo que querías, pero, en lo que respecta a Google Drive y Chrome, esto fue lo que me sirvió:
Google Drive ("Copia de seguridad y sincronización")
des-priorizar:
volver a la normalidad:
Cromo
eliminar la prioridad de todos los procesos actuales:
restablecer a la normalidad todos los procesos actuales:
fuente
cputhrottle
es la herramienta que necesitas Puedes instalarlo con Homebrew .Puede monitorear una serie de procesos por nombre ejecutando el script Bash a continuación. No estoy muy seguro de cómo convertir esto en un elemento de inicio de sesión, ya que
cputhrottle
requiere permisos de superusuario. Ejecútelo como un script, en un flujo de trabajo de Automator, lo que sea:[Editado]
He agregado una versión diferente para este script (un
bash
script), que podría ser útil para las personas que buscan limitar la CPU para múltiples aplicaciones.Este nuevo script también le permite especificar una lista que contiene el nombre de la aplicación y el límite de la CPU.
La principal diferencia es que puede agregar un límite de CPU por aplicación, y se ejecutará solo una vez por aplicación. También agregué la opción de eliminar todos los
cputhrottle
procesos.La secuencia de comandos supone que tanto
cputhrottle
ypidof
se instalan antes de ejecutarlo.Fuente:
fuente
cputhrottle
el foro se eliminó de Homebrew el 17 de febrero de 2019 porque ya no funciona . Yosemite fue la última versión de macOS compatiblecputhrottle
.¡De hecho puedes! Hay CPUThrottle , que permite especificar un PID para restringir.
Tenga en cuenta que están tratando de usar tanto por una razón, es una herramienta útil, pero si lo hará mejor o peor para usted en el día a día será algo que descubra.
fuente
Aunque no es una respuesta directa a la pregunta del OP, si tiene un problema con un proceso en particular que consume demasiado tiempo de su CPU y deja su computadora inutilizable, y no le importa cuánto tiempo tarda ese proceso en terminar el proceso. En la tarea en la que está trabajando, puede usar la
renice
para alterar la prioridad de ese proceso, haciendo que se comporte bien (de ahí el nombre).Primero, necesita encontrar el PID del proceso que está utilizando los recursos de la CPU. Puede hacerlo en Activity Monitor o en Terminal.app con el
ps
comando; por ejemplo, para encontrar el PID del navegador Safari, escriba:La segunda línea de arriba es la salida, y el PID es 17452 en este caso particular.
Luego, la siguiente tarea es cambiar la prioridad del proceso (digamos que es Safari lo que queremos que se comporte bien). Para hacer esto, en Terminal.app escriba:
La
-n
opción cambia el nivel agradable agregando 10 al valor actual (0 por defecto). El rango de valores es de -20 a 20, con el valor más bajo que significa la máxima prioridad. Como usuario normal, puede usar los valores de 0 a 20. Para asignar un valor negativo, debe tener privilegios de root (por ejemplo, usar elsudo
comando). Lea más sobrenice
yrenice
escribiendoman nice
yman renice
en Terminal.app.nice
yrenice
no limitan el porcentaje de la CPU disponible para una aplicación dada per se; sin embargo, permiten cambiar la prioridad de programación o, en otras palabras, cuánto tiempo de CPU obtendrá un proceso. Todo esto es relativo a la carga de la CPU en su sistema, por lo que si el sistema está infrautilizado, lo más probable es que no vea ninguna diferencia.fuente
Hay una frase simple para hacer todo eso:
Escriba el nombre de su aplicación en lugar de Chromium y el porcentaje deseado en lugar de 10, ¡y listo!
fuente
pgrep Dropbox | sudo xargs -n 1 -I'{}' sh -c 'cputhrottle {} 10 &'
.pgrep
Sin embargo, no estoy seguro de si macOS viene con instalado.Esto se basa en una respuesta anterior, pero agrega la trampa para ctrl + c para asegurarse de que el proceso que se estrangula se deja en un estado continuo, y agrega
set -e
así que este script se cerrará limpiamente si el proceso en sí se cierra:fuente
El enlace que Nicholas Smith publicó ya no funciona. Así que encontré otra aplicación que hace el truco para las personas que la están buscando nuevamente. la aplicación llama a Apppolice.
http://www.macupdate.com/app/mac/49836/apppolice
fuente
Este es mi script final, mantenga limpio el comando cputhrottle solo ejecute uno nuevo si no existe
fuente
El script que Dimitri escribió funciona bien (en macOS), pero sigue ejecutándose con errores después de que se cierra la aplicación. Lo cambié para que finalice (con un mensaje de error sobre PID no encontrado):
fuente
esto me funcionó
fuente