5 votos

¿Cómo limitar el uso de la cpu de los procesos del sistema?

Algunos procesos del sistema como systemsoundservd, logd, diagnosticd, etc. últimamente utilizan mucha cpu en mi macbook pro. ¿Cómo puedo limitarlos en cierta medida porque la mayoría de ellos no son demasiado relevantes para mí?

Nota: Ya he comprobado ¿Puedo limitar manualmente el %CPU utilizado por un proceso? pero no parece funcionar como se esperaba.

viet@Mozg  ~  pgrep -l systemsoundserv  
506 systemsoundserv  
viet@Mozg  ~  sudo cputhrottle 506 10  
libc++abi.dylib: terminating
with uncaught exception of type Process::ManipulatorException: Error
on task_for_pid of pid 506, res = 5 [1]    7594 abort      sudo
cputhrottle 506 10

1voto

Oskar Puntos 1242

Esos procesos del sistema responden a otras aplicaciones que se ejecutan, por lo que su primer paso sería aislar e identificar qué programas tiene que causan una alta carga de fondo del sistema.

Es como correr con un coche de alto rendimiento y ver que los neumáticos están calientes y que el combustible se consume rápidamente: todo eso es la intención del diseño cuando se pisa el acelerador a fondo.

Puede que tenga más sentido empezar con su carga de trabajo real que tratar de coartar o desactivar el registro y la salida de sonido. Lo siento por una respuesta lateral, pero esos procesos se sientan en reposo para la gran mayoría de las instalaciones y probablemente lo haría en su sistema si se reinicia y un poco de solución de problemas debe mostrar exactamente cuál de sus aplicaciones desencadenar este patrón de uso.

0voto

Shamwow Puntos 63

Puede intentar utilizar nice .

nice es una función integrada en MacOS y se puede utilizar para lanzar una tarea con una prioridad de programación más baja. (O más alta, con superusuario).

nice -n 20 yes > /dev/null

Se lanzará yes con la menor (y más lenta) prioridad posible. También puede editar la prioridad de un proceso que se esté ejecutando actualmente utilizando renice .

home:~ user$ yes > /dev/null &
[1] 2492
home:~ user$ renice -n 20 2492

Esto cambiará la prioridad del proceso ya iniciado. Cabe destacar que el yes El proceso sigue funcionando al 100%, ya que esto no es realmente un estrangulamiento. Más bien, nice hace que si varios programas compiten por los recursos, el yes el programa se ralentizará y dejará de lado sus tareas más importantes.

Puedes ver aquí para más información sobre el establecimiento de la prioridad en el Mac.

0voto

Shamwow Puntos 63

Una aplicación que he encontrado útil es Conmutador Turbo Boost .

Evita que la CPU sobrepase el reloj base. Esto no se dirige a ninguna aplicación en concreto, pero sí lo hace y reduce la velocidad de cualquier aplicación que esté causando un esfuerzo innecesario.

Esto es útil para conservar la vida de la batería o mantener el sistema fresco.

0voto

Mateo Guty Puntos 13

Puedes probar con cputhrottle: https://download.cnet.com/CPUThrottle/3000-20432_4-75587020.html

Lo ejecuto a través del siguiente script por ejemplo :

#!/bin/bash
echo
echo "Process usage limiter: usage \"plimit [process name] [usage limit 0-100%\""

# Process name search and check - exit 1 on error.
echo "Process to limit?" ; read name  
procnum=$( ps xca | grep -i  "$name" | awk '{ print $1 }')  
ps xca | grep -i "$name" 2>/dev/null ; procerror=$? 
[ $procerror -ne "0" ] && echo "Process not found: "$name && echo && exit 1

# Process maxium CPU usage check - exit 2 on error.
echo "Process limit (1-100) ? "  ; read plimit  
[ $plimit -gt 0 ] 2>/dev/null ; limerror=$? 
[ $limerror -ne "0" ] && echo "The process limit must be a number" && echo && exit 2

if [ "$plimit" -le "0" ] || [ "$plimit" -gt "100" ] 
then
echo "That is not a proper limit." ; echo
exit 1
else
echo Command: cputhrottle $procnum $plimit 
sudo cputhrottle $procnum $plimit

-1voto

chacovi Puntos 11

He encontrado esta alternativa: AppPolice

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X