Mi computadora portátil (una HP con un chip i3) se sobrecalienta como loco cada vez que ejecuto un proceso de recursos pesados (como una gran compilación, extrayendo grandes tarballs o ... jugando Flash).
Actualmente estoy buscando algunas soluciones de enfriamiento, pero tuve la idea de limitar el consumo global de CPU. Pensé que si la CPU está limitada, es probable que la temperatura deje de aumentar frenéticamente, y estoy dispuesto a sacrificar un poco de rendimiento para hacer el trabajo.
- ¿Estoy equivocado en mi razonamiento?
- ¿Cómo puedo proceder para limitar el uso general de la CPU?
Si ayuda, estoy ejecutando Debian.
Respuestas:
No sé que limitar la CPU a todo el sistema es algo que es posible sin mucho pirateo, pero puede limitar fácilmente la cantidad de CPU utilizada por un solo proceso usando cpulimit
La única forma en que puedo pensar en que puedas usar esto de manera efectiva es escribiendo un script de envoltura (realmente no puedo llamarlo un script, es tan pequeño) para las aplicaciones que sabes que son un gran recurso. Digamos, por ejemplo, que google-chrome usa mucha CPU, podría reemplazar el binario google-chrome en su camino con algo como:
No he probado esto, así que tómalo con un grano de sal. Desde el sitio web de cpulimit, parece que puede establecer reglas para límites de CPU en diferentes aplicaciones. No estoy seguro, tendrías que echar un vistazo.
fuente
Otra alternativa que no se ha mencionado es
cpufrequtils
, que instalé y utilicé en mi computadora portátil con Debian 6. Le permite cambiar el algoritmo ( gobernador , encpufrequtils
terminología) que el kernel usa para escalar la velocidad del reloj hacia arriba y hacia abajo en respuesta para cargar, en particular, eluserspace
gobernador le permite bloquear la frecuencia en algo de su elección (por supuesto, la CPU debe ser capaz de funcionar a esta velocidad).Lo he usado para bloquear un Atom a 800MHz en lugar de 1.6GHz, por ejemplo. Es muy fácil de usar.
fuente
Puede limitar los núcleos de su CPU automáticamente en función de la temperatura utilizando el script temp_throttle . Puede ejecutarse en segundo plano mientras te enfocas en cosas más importantes. Un ejemplo sobre cómo ejecutar:
* Descargo de responsabilidad: soy el autor y mantenedor de temp_throttle *
fuente
Entra en BIOS y subclockea la CPU. - No hay necesidad de inteligencia.
fuente
Visite esta página, explica cómo instalar y usar
cpulimit
en Debian y Ubuntu:http://www.howtoforge.com/how-to-limit-cpu-usage-of-a-process-with-cpulimit-debian-ubuntu
fuente
No es necesario cambiar el gobernador, solo necesita cambiar el valor de
/sys/devices/system/cpu/*/cpufreq/scaling_max_freq
cada núcleo de la CPU.Por ejemplo, con este bucle for:
vea también mi script setcpu .
( comandos originales encontrados aquí )
fuente
Puede usar
renice
para alterar la prioridad del proceso por proceso o ID de grupo. De los ejemplos pararenice
:Ajuste el valor agradable para que las ID de proceso 987 y 32 tengan un valor agradable más bajo:
renice -n 5 -p 987 32
Ajuste el valor agradable para que las ID de grupo 324 y 76 tengan un valor agradable mayor, si el usuario tiene los privilegios adecuados para hacerlo:
renice -n -4 -g 324 76
Ajuste el valor agradable para que la ID de usuario numérica 8 y el usuario sas tengan un valor agradable más bajo:
renice -n 4 -u 8 sas
fuente