Limitar velocidad máxima del procesador

cpuHace tiempo que me preguntaba el porque del sobrecalentamiento de mi computadora en linux, aunque también me sucedía en windows pero no tan seguido, entonces me cuestione que pasaría y me percate que solamente pasaba cuando cualquiera de los 2 procesadores estaba al 100% de frecuencia por un tiempo prolongado lo que hacía que se sobrecalentara y eventualmente se apagara.

Esto hacía casi imposible instalar cualquier distro de linux ya que desde los live cd hacían poner el procesador al máximo y tenía que poner un ventilador en la entrada de ventilación de la laptop, esto lo hice varias veces por mi manía de instalar cual distro se me pusiera en frente sólo hasta entrar a la sección pero únicamente gnome 2 podía límitar la frecuencia del procesador (en modo userspace) con el applet que estaba incluido pero se quedaba todo el tiempo en la frecuencia que le pusiera y no se encontraba en ondemand y eso hacía que siempre estuviera a la frecuancia que le deje yo y no la que el procesador necesitara.

Fue cuando busque como limitar la frecuencia máxima a la que puede trabajar el procesador, para que el procesador se manejara en ondemand sin llegar al 100% del procesador para que no se sobrecalentara.

Primero debemos saber cuantos procesadores tenemos en una terminal escribir:

ls /sys/devices/system/cpu/ | grep cpu[0-9]

En mi caso la salida fue

cpu0
cpu1

Significa que tengo 2 procesadores

Luego para cada procesador que se tenga

more /sys/devices/system/cpu/cpu[0-9]/cpufreq/scaling_available_frequencies

En mi caso las salidas fueron

::::::::::::::
/sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies
::::::::::::::
2100000 1050000 525000
--Más--(Siguiente fichero: /sys/devices/system/cpu/cpu1/cpufreq/scaling_availabl::::::::::::::
/sys/devices/system/cpu/cpu1/cpufreq/scaling_available_frequencies
::::::::::::::
2100000 1050000 525000

Para ambos procesadores, como les comente si tengo los procesadores a 2100000 hertz se sobrecalienta después de un tiempo así que quiero límitar la frecuencia máxima, como los archivos del directorio /sys/devices/system/cpu/cpux/cpufreq/ son del administrador es necesario hacer los cambios que deseamos como administrador

La velocidad máxima se edita en el fichero

/sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
/sys/devices/system/cpu/cpu1/cpufreq/scaling_max_freq

Y como quiero cambiarlo en cada inicio me conviene ponerlo en el /etc/rc.local entonces edito ese archivo como administrador
Gnome

gksu gedit /etc/rc.local

KDE

kdesu kate /etc/rc.local

Terminal (cambiar nano por su editor favorito o usar su antes de escribir el comando)

sudo nano /etc/rc.local

Añadir entre las lineas

 #!/bin/sh -e
 echo 1050000 > '/sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq'
 echo 1050000 > '/sys/devices/system/cpu/cpu1/cpufreq/scaling_max_freq'
 exit 0

Y así la velocidad máxima del procesador será de 1050000.

Espero le sea útil a alguien.


Christopher Castro: Linuxero de corazón.


28 comentarios en “Limitar velocidad máxima del procesador

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Current day month ye@r *

  1. IceWeasel 10.0.11GNU/Linux
    merlin el debianitamerlin el debianita

    Que buen tip, de hecho tengo a PC de Escritorio con Solus que no podía hacer nada que se me apagaba voy a probar gracias por el artículo.

    1/28
  2. Oye, algunas vez revisaste o actualizaste el BIOS del equipo?? Es acaso un modelo HP?? te pregunto, porque lo más probable es que sea un problema de BIOS y de la configuración del Intel SpeedStep o del AMD cool & Quiet, he solucionado un montón de veces el tema del sobrecalentamiento actualizando la BIOS (soy ensamblador de equipos), lo otro, es cambiar la pasta térmica que trae de fábrica (generalmente son muy malas), por una con compuestos de plata, cuestan USD$10 y generalmente son mucho mejores que las que usan al ensamblar. Lo otro, revisa la tierra o el polvo, las pelusas dentro de tu equipo y por último, puedes comprar una base (que sea de aluminio, las plásticas tienen tener el efecto contrario por el cual fueron adquiridas), y con eso ventilar la parte inferior del equipo.

    Eso, espero te ayude,

    Saludos.

    2/28
    • Firefox 17.0Ubuntu
      Christopher Castro

      Es una Toshiba Satellite A305D-SP6905R http://pcxion.com/shop/printinfo.php?products_id=1080

      Desde nueva tenía el problema, cuando tenga dinero la llevo a mantenimiento y el BIOS lo tuve que actualizar ya que no podía instalar windows 7 en su tiempo así tuve que actualizar a la fuerza y supongo fue la última actualización del BIOS que se tuvo instalar.

      3/28
      • Que raro que te pase, he tenido 2 toshiba y nunca me presentaron problemas de temperatura. No así los HP, tuve un HP Compaq tipo tablet de 13.3″ y me salió horriblemente malo. Y he reparado decenas de HP con el mismo problema, pero ha sido más que nada un problema de diseño, y los con gráficas Nvidia, el típico problema de soldadura, así que me ha tocado aplicar reballing.

        Saludos.

        8/28
  3. Gracias por la información, de momento mi laptop Samsung RV408 con 6GB RAM y LM14 KDE RC x64 funciona sin problemas, sin embargo por precaución y de tiempo atrás uso una base con 3 motoventiladores tanto para esta como para la netbook Acer AOD255E con 2 GB RAM y LM14 KDE RC x32 y mantienen muy refrigeradas, solo la netbook se nota que se calienta un poco cuando tengo muchos programas y ventanas abiertas, de resto nunca se me han apagado o dado alarmas por sobrecalentamiento.
    Sería bueno ir conociendo que marcas y modelos dan esos problemas y como los han solucionado, para así tener referencias.

    4/28
  4. La mía a veces se calienta, la frecuencia de mis 2 procesadores

    alf@Alf:~$ more /sys/devices/system/cpu/cpu[0-9]/cpufreq/scaling_available_frequencies
    ::::::::::::::
    /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies
    ::::::::::::::
    1900000 1800000 1600000 1400000 1200000 1000000 800000
    ::::::::::::::
    /sys/devices/system/cpu/cpu1/cpufreq/scaling_available_frequencies
    ::::::::::::::
    1900000 1800000 1600000 1400000 1200000 1000000 800000
    alf@Alf:~$

    ¿Que frecuencia me sugieres dejar como máxima?

    5/28
  5. Buen tip. Nunca he tenido problemas de calentmiento, pero lo tendré en cuenta por si acaso.

    6/28
  6. En la practica esto debe mermar bastante la velocidad con la que abren las aplicaciones y otros eventos en que el procesador tiene picos de carga de trabajo (especialmente en los equipos con un solo núcleo)
    Estoy en lo cierto?

    7/28
    • Es correcto, pero depende, si solo usas el equipo para ver internet, música y videos, no notarás la diferencia, ahora bien, si eres un compilador de código compulsivo, notarás la diferencia.

      Saludos.

      9/28
  7. Yo también tengo este problema en un viejo Acer Aspire 5315 que deseo solucionar de una vez por todas; pero la ruta de mi árbol de directorios difiere de la que indicas, hasta cpu0 coincide pero a partir de ahí no encuentro la carpeta cpufreq sino estas otras cache, cpuidle, power, subsystem, thermal-throttle, topology y los ficheros crash-notes y uevent y en ninguna de las carpetas veo el fichero scaling_max_freq.

    10/28
    • cpu freq scaling solo esta disponible para micros posteriores a core2duo, no pentium D, 4, celeron o mononucleos. es debido a que hasta los prescott se trabajaba al maximo, desperdiciando energia y calor, yo tenia uno que siempre andaba a 40 o mas siempre, eso si en invierno no tenia los pies frios :P saludos

      11/28
  8. Para Gnome o Unity está el indicator-cpufreq , que te permite cambiar la velocidad del procesador y la configuración de energía desde el panel superior.

    14/28
  9. Hola, @Christopher Castro, enhorabuena por el artículo, conciso y útil, solo una pequeña corrección, no llames procesador a los núcleos de la CPU/UCP (el procesador), ya que la gente se podría confundir.

    Lo que me extraña es que teniendo dos núcleos de procesador, tengas problemas de calentamiento, quizás debería abrirlo, y limpiarlo, o si no es por suciedad o polvo, deberías llevarlo al servicio técnico.

    Un saludo a todos.

    15/28
  10. Realmente no tiene sentido limitar la velocidad del procesador si está activado el governante ONDEMAND *a menos que sepas de antemano que las tareas que vas a realizar no van a ser uso intesivo del CPU como por ejemplo navegar páginas web pesadas*.

    Hay que tener en cuenta que cuanto menos que escalemos el procesador más tiempo va a necesitar para renderizar las páginas y más energía van a consumir, por otra parte el governante ONDEMAND automáticamente setea las frecuencias al nivel más bajo cuando la máquina está inactiva.
    Lo ideal es usar ONDEMAND y tweakear correctamente el gobernante de forma que se active y desactive lo más rápido posible dependiendo la carga del sistema, por ejemplo:

    w /sys/devices/system/cpu/cpu[0-3]/cpufreq/scaling_governor – - – - ondemand
    w /sys/devices/system/cpu/cpufreq/ondemand/up_threshold – - – - 85
    w /sys/devices/system/cpu/cpufreq/ondemand/sampling_down_factor – - – - 20
    (nomenclatura en formato systemd)

    Igual de importante que los gobernantes es apagar la placa gráfica dedicada si no la estamos usando (en caso que nuestra máquina tenga un sistema de video híbrido) lo mismo que el resto de dispositivos que use el sistema y, por sobretodo, usar POWERTOP 2 para poner en modo de baja energía aquellos dispositivos que están seteados para que funcionen al máximo rendimiento.

    j:0 ~ $ cat /etc/tmpfiles.d/optimized.conf
    w /sys/kernel/debug/vgaswitcheroo/switch – - – - OFF

    #w /sys/class/drm/card0/device/power_profile – - – - low
    w /sys/class/drm/card0/device/power_method – - – - dynpm

    w /sys/devices/system/cpu/cpu[0-3]/cpufreq/scaling_governor – - – - ondemand
    w /sys/devices/system/cpu/cpufreq/ondemand/up_threshold – - – - 85
    w /sys/devices/system/cpu/cpufreq/ondemand/sampling_down_factor – - – - 20

    #w /sys/module/snd_hda_intel/parameters/power_save – - – - 1

    w /sys/kernel/mm/transparent_hugepage/enabled – - – - madvise
    w /sys/kernel/mm/transparent_hugepage/defrag – - – - madvise
    w /sys/kernel/mm/transparent_hugepage/khugepaged/defrag – - – - 0

    w /proc/sys/kernel/watchdog – - – - 0
    w /sys/class/scsi_host/host[0-5]/link_power_management_policy – - – - min_power
    w /sys/bus/pci/devices/*/power/control – - – - auto

    w /proc/sys/vm/dirty_writeback_centisecs – - – - 1500

    j:0 ~ $ cat /etc/rc.local
    #!/bin/bash
    #
    # /etc/rc.local: Local multi-user startup script.
    #

    modprobe radeon
    echo OFF > /sys/kernel/debug/vgaswitcheroo/switch
    rmmod radeon
    (cuidado con el rmmod ya que si deseamos activar la placa de video especializada y tratamos de cargar nuevamente el módulo estando ésta apagada el sistema nos va a regalar un precioso kernel panic).

    16/28
  11. Que buen tipo, lo probare ya que he tenido algunos problemas con el equipo. Gracias

    17/28
  12. Buenas, podrian decirme cual es la temperatura normal para un procesador de doble nucleo de 2ghz, Gracias y saludos

    18/28
  13. Buenas,

    este es un tema bastante importante al cuál, después de un tiempo de estar usando linux me puse a investigar para reducir la temperatura de la cpu así como su consumo energético.

    Este tema me llevó varias horas de investigación y pruebas y les voy a comentar una manera sencilla de configurar nuestra cpu en debian para que trabaje bajo demanda, es decir, la cpu ajusta automáticamente su frecuencia según la carga de trabajo que recibe el procesador aumentándola cuando es necesario para no perder rendimiento y trabajando a la frecuencia más baja cuando es necesario, reduciendo así el consumo de energía de nuestro procesador y por consiguiente la temperatura. Aunque esto lo hice en debian debería funcionar con cualquier distro.

    Instalar los paquetes cpufreqd y cpufrequtils. (creo que después de esto era necesario un reinicio).

    Elegir y cargar el modulo para el procesador, para procesadores intel modernos lo hacemos con modprobe acpi-cpufreq (nota en debian se carga solo, lo podemos comprobar con lsmod, supongo que será igual para el resto).

    Comprobar el funcionamiento.

    Primero vamos a comprobar que se ha cargado nuestro driver para el procesador, para ello solo tenemos que hacer un cat al archivo correcto:

    cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_driver

    La salida que deberías observar es algo así como…
    acpi-cpufreq

    Ahora si la prueba anterior ha tenido éxito podemos comprobar cuales son las frecuencias disponibles para nuestro procesador de nuevo con el comando cat:

    cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies

    La salida que deberías observar es algo así como…
    1600000 800000

    También podemos mostrar los gobernadores disponibles:

    cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors

    La salida que deberías observar es algo así como…
    powersave userspace conservative ondemand performance

    Y cual es el gobernador usado en este momento:
    cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

    Dándonos como resultado algo así:
    Performance

    Nota: debian carga por defecto ondemand.

    Este último comando nos indica el gobernador que está funcionando actualmente, el más recomendado es ondemand que es el que ajusta la velocidad del procesador según la demanda.

    Otra utilidad más directa para conocer la info de nuestra cpu:
    cpufreq-info (ejecutamos este comando para ver la info de nuestra cpu):

    pufrequtils 002: cpufreq-info (C) Dominik Brodowski 2004-2006
    Report errors and bugs to linux@brodo.de, please.
    analyzing CPU 0:
    driver: acpi-cpufreq
    CPUs which need to switch frequency at the same time: 0
    hardware limits: 800 MHz – 1.73 GHz
    available frequency steps: 1.73 GHz, 1.33 GHz, 1.07 GHz, 800 MHz
    available cpufreq governors: conservative, ondemand, powersave, userspace, performance
    current policy: frequency should be within 800 MHz and 1.73 GHz.
    The governor “ondemand” may decide which speed to use
    within this range.
    current CPU frequency is 800 MHz.

    Son importantes las líneas hardware limits: 800 MHz – 1.73 GHz y available frequency steps: 1.73 GHz, 1.33 GHz, 1.07 GHz, 800 MHz que marcan las posibilidades del procesador que tengamos.

    Como podéis observar también nos indican el gobernador que estamos usando y la frecuencia a la que trabajando actualmente nuestra cpu.

    Para cambiar el gobernador para todos los procesadores (necesario en el caso de dobles y cuatro núcleos ) :

    cpufreq-set -r -g ondemand

    El siguiente comando también muestra la velocidad del procesador, si el ahorro funciona bien deberia dar valores menores a la max del procesador:
    $cat /proc/cpuinfo | grep -i mhz
    o
    $ watch grep \”cpu MHz\” /proc/cpuinfo

    Saludos, con esto pueden tener funcionando de manera más eficiente vuestro procesador sin desperdiciar recursos.

    19/28
  14. Amigo, muchas gracias, es precisamente lo que andava buscando.
    Me funciono de maravilla en mi Athlon II x2 250 a 3GHz.
    Siempre que abria un vìdeo 1080p en linux, mi CPU usaba el 100%, ahora, usa
    un promedio de 40 a 50%.

    Tenia miedo de que la frequencia quedase fija en 1.8 GHz (que fue donde
    lo ajustè), pero “OnDemand” sigue activo, cuando la computadora està inactiva
    el CPU baja hasta los 800 MHz. Fabuloso! :)

    21/28
  15. Lo he probado en elementary Os y Ubuntu y ha funcionado, pero lo he intentado en fedora 17 y no ha servido, no me deja guardar los cambios a la hora de cambiar la cantidad de max_freq. Alguien sabe de alguna manera para lograrlo? Muy buen articulo por cierto

    22/28
    • Firefox 18.0GNU/Linux
      Christopher Castro

      En realidad lo que sucede es que en fedora 17 el archivo rc.local no existe y se debe crear en la carpeta /etc/rc.d/ quedando la ruta /etc/rc.d/rc.local

      24/28
  16. con la arctic silver 5 hice la prueba y la temperatura del cpu bajo 10° !!!!

    23/28
  17. Gracias por la información, de que manera puedo administrar la velocidad de mi CPU cuando yo quiera sin tener que usar la terminal, no me sirve que lo haga cada reinicio, solo cuando dejo la maquina encendida realizando un trabajo que no toma mas de de un 10%, algún script para bajarle y para que vuelva normal

    Gracias

    26/28
  18. Muchas gracias por tu consejo me ha ayudado mucho para limitar la frecuencia de mis 4 cpu’s i3-2330m; pues me preocupaba el daño que puede causar trabajar a toda la velocidad de proceso.

    27/28
  19. Firefox 28.0Ubuntu
    Francisco Islas

    Muchas gracias por este valioso aporte, me ayudaste a tener instalado linux en mi macbook pro. En verdad muchas gracias

    28/28

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Current day month ye@r *