GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo puedo desactivar el escalado de frecuencia de la CPU?

Como adicto al rendimiento web, siempre estoy buscando formas de mejorar el rendimiento del sistema y acelerar las aplicaciones web. Y hoy compartiré con ustedes la magia del escalado de frecuencia de la CPU y una guía práctica para deshabilitar el escalado de frecuencia de la CPU para ejecutar su sistema a la máxima velocidad de la CPU.

Antes de entrar en cómo deshabilitar el escalado de frecuencia de la CPU, comprendamos qué es la aceleración de la CPU.

¿Qué es el escalado de frecuencia de CPU?

Desde Kernel v. 2.6.18 (CentOS) y 2.6.32 (Ubuntu), se introdujo una nueva característica llamada Escalado dinámico de frecuencia de CPU (también conocido como aceleración de CPU).

Esta escala de frecuencia de la CPU permite que un procesador se ejecute con una frecuencia inferior a la máxima permitida. Esto se hace solo para preservar el consumo de energía, pero la desventaja de esto es que no puede usar toda la velocidad de su CPU.

¿Cómo puedo saber a qué velocidad se ejecuta mi CPU?

Ejecute este comando, como se ve a continuación:

grep -E '^model name|^cpu MHz' /proc/cpuinfo

La salida debería ser similar a esta:

[[email protected]:~]grep -E '^model name|^cpu MHz' /proc/cpuinfo
model name : Intel(R) Xeon(R) CPU E3-1240 V2 @ 3.40GHz
cpu MHz : 1600.000
model name : Intel(R) Xeon(R) CPU E3-1240 V2 @ 3.40GHz
cpu MHz : 1600.000
model name : Intel(R) Xeon(R) CPU E3-1240 V2 @ 3.40GHz
cpu MHz : 1600.000
model name : Intel(R) Xeon(R) CPU E3-1240 V2 @ 3.40GHz
cpu MHz : 1600.000
model name : Intel(R) Xeon(R) CPU E3-1240 V2 @ 3.40GHz
cpu MHz : 1600.000
model name : Intel(R) Xeon(R) CPU E3-1240 V2 @ 3.40GHz
cpu MHz : 1600.000
model name : Intel(R) Xeon(R) CPU E3-1240 V2 @ 3.40GHz
cpu MHz : 1600.000
model name : Intel(R) Xeon(R) CPU E3-1240 V2 @ 3.40GHz
cpu MHz : 1600.000

Como puede ver, la velocidad de la CPU original es de @ 3,40 Ghz, sin embargo, la velocidad de ejecución de la CPU en Mhz es de alrededor de 1600. La CPU funciona a la mitad de su velocidad total.

Esto también se puede lograr con un paquete de CPU genial llamado cpufrequtils / cpupoweruitls

Instalar cpupowerutils en CentOS/Debian

yum install cpupowerutils -y

Instalar cpupowerutils en Ubuntu/Debian

apt-get install cpufrequtils

Ahora ejecute este comando y le mostrará información sobre la velocidad mínima y máxima de su CPU, entre otros detalles:

cpupower frequency-info

El resultado esperado debería ser similar a este:

[[email protected]:~]cpupower frequency-info
analyzing CPU 0:
  driver: intel_pstate
  CPUs which run at the same hardware frequency: 0
  CPUs which need to have their frequency coordinated by software: 0
  maximum transition latency:  Cannot determine or is not supported.
  hardware limits: 1.60 GHz - 3.80 GHz
  available cpufreq governors: performance powersave
  current policy: frequency should be within 1.60 GHz and 3.80 GHz.
                  The governor "powersave" may decide which speed to use
                  within this range.
  current CPU frequency: 1.60 GHz (asserted by call to hardware)
  boost state support:
    Supported: yes
    Active: yes
    3600 MHz max turbo 4 active cores
    3700 MHz max turbo 3 active cores
    3800 MHz max turbo 2 active cores
    3800 MHz max turbo 1 active cores

Deshabilitar escalado de frecuencia de CPU en Linux (RedHat y Ubuntu)

Veamos cómo deshabilitar el escalado de frecuencia de la CPU en las plataformas Linux más populares.

Para usuarios de CentOS/RHEL

Cambiemos la frecuencia de la CPU a la velocidad máxima disponible con el siguiente comando:

cpupower frequency-set -g performance

Veamos si hay algún cambio en la velocidad de ejecución de la CPU nuevamente:

[[email protected]:~]grep -E '^model name|^cpu MHz' /proc/cpuinfo
model name : Intel(R) Xeon(R) CPU E3-1240 V2 @ 3.40GHz
cpu MHz : 3497.218
model name : Intel(R) Xeon(R) CPU E3-1240 V2 @ 3.40GHz
cpu MHz : 3392.296
model name : Intel(R) Xeon(R) CPU E3-1240 V2 @ 3.40GHz
cpu MHz : 3397.742
model name : Intel(R) Xeon(R) CPU E3-1240 V2 @ 3.40GHz
cpu MHz : 2283.578
model name : Intel(R) Xeon(R) CPU E3-1240 V2 @ 3.40GHz
cpu MHz : 3457.640
model name : Intel(R) Xeon(R) CPU E3-1240 V2 @ 3.40GHz
cpu MHz : 2133.234
model name : Intel(R) Xeon(R) CPU E3-1240 V2 @ 3.40GHz
cpu MHz : 1600.257
model name : Intel(R) Xeon(R) CPU E3-1240 V2 @ 3.40GHz
cpu MHz : 3740.265
[[email protected]:~]

Como ve en el comando anterior, ahora la CPU está funcionando más alto que antes cuando se necesita.

Otra forma de hacerlo manualmente es ejecutar este comando que cambiará el controlador de la CPU del modo "bajo demanda" al modo "rendimiento" para todas sus CPU:

for CPUFREQ in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor; do [ -f $CPUFREQ ] || continue; echo -n performance > $CPUFREQ; done

Si su sistema está ejecutando cualquiera de los demonios que controlan la velocidad de la CPU, simplemente deténgalos para que su sistema funcione a la máxima velocidad de la CPU:cpuspeed, cpufreqd o powerd.

service cpuspeed stop

Para usuarios de Ubuntu/Debian

Edite este archivo y, si no existe, simplemente créelo:

nano -w /etc/default/cpufrequtils

Agregue la siguiente línea dentro:

GOVERNOR="performance"

Guarda presionando CTRL + X, luego presiona Y.

Siguiente paso:deshabilite el demonio ondemand para evitar perder sus cambios después de reiniciar el servidor, ejecute este comando:

update-rc.d ondemand disable

Eso es todo. Verifique su configuración nuevamente con este comando:

cpufreq-info

Conclusión

Ejecutar su CPU a toda velocidad realmente puede mejorar el rendimiento de sus aplicaciones. La mayoría de las CPU modernas ya tienen sistemas de enfriamiento de CPU realmente buenos, por lo que esto no debería ser un problema, sin embargo, asegúrese de que esto no cause un gran consumo de energía adicional o un sobrecalentamiento de la CPU. Como puede ver, puede deshabilitar fácilmente el escalado de frecuencia de la CPU para las distribuciones basadas en RedHat y Debian. Háganos saber si tiene algún problema o pregunta al respecto.

Lectura adicional:

  • Escalado de frecuencia de CPU en Linux con cpufreq
  • Documentos de escalado de frecuencia de CPU de ArchLinux
  • Documentación de los gobernadores RedHat CPUFreq
¿Cómo puedo desactivar el escalado de frecuencia de la CPU? fue modificada por última vez:11 de abril de 2017 por Esteban Borges
Linux
  1. ¿Cómo deshabilitar SELinux en CentOS?

  2. ¿Cómo puedo vincular un archivo en Linux?

  3. ¿Cómo puedo ver en qué núcleo de CPU se está ejecutando un subproceso?

  4. Cómo obtener el uso de la CPU

  5. ¿Cómo puedo desactivar el botón de mi unidad de CD/DVD?

Cómo deshabilitar SELinux de forma temporal o permanente

¿Cómo puedo desactivar las actualizaciones automáticas de KernelCare?

Ubuntu 16.04:¿cómo puedo desactivar el arranque seguro?

¿Cómo deshabilitar el gráfico de arranque?

Cómo deshabilitar el intercambio en Linux

¿Cómo deshabilitar todo en crontab -l?