Deshabilitar el demonio de escala de CPU "ondemand"

13

Tengo un servidor que, a partir de la actualización a 10.04, ahora ejecuta el demonio de escala de CPU "ondemand". ¿Por qué instalaría esto automáticamente? No quiero que mi servidor ahorre energía a expensas del rendimiento.

Un estudiante en una universidad
fuente
55
Estás confundiendo al gobernador a pedido con el PowerSave.
Leon Nardella
3
De acuerdo con Leon. Ondemand se acelera si hay algo que hacer y se ralentiza si está inactivo. No restringe la capacidad de la CPU para cambiar las velocidades, sino que lo aprovecha.
maco
Posible duplicado askubuntu.com/questions/285434/…
Qasim
Aumenta los tiempos de respuesta en un servidor mayormente inactivo.
Un estudiante en una universidad el

Respuestas:

32

En lugar de deshabilitar la ejecución del /etc/init.d/ondemandscript (como lo sugiere George), debe usar el comando this

sudo update-rc.d ondemand disable

Para que el sistema init no inicie el script, esta es la forma reconocida de hacerlo. La desactivación del permiso de ejecución ( sudo chmod -x /etc/init.d/ondemand) podría sobrescribirse si se actualiza el paquete.

LassePoulsen
fuente
Si lo hago: sudo update-rc.d other_governor enable, ¿establecerá un gobernador permanente deseado?
userDepth
5

El escalado de frecuencia no es estático. Tan pronto como queda trabajo por hacer, la CPU entra en acción, los estados P aumentan y todo vuela.

Está habilitado porque es ampliamente visto como algo bueno. Le ahorra energía (bueno para su billetera y el medio ambiente). Mantiene el calor bajo ( tan importante en una sala de servidores). Y es bastante imperceptible.

Además, en los chips Intel modernos, si tiene escalado, puede usar "turbo boost", donde un núcleo funcionará a velocidades superiores a las existentes por un tiempo. Esto es muy útil para picos de trabajo de un solo hilo. Sin el escalado habilitado, no obtienes esto.

Oli
fuente
¿Cuánto tiempo lleva la demanda escalar en un P4 Xeon?
Un estudiante en una universidad
Encontré esta vieja respuesta y, si bien estoy de acuerdo con Oli, hay casos de usuarios específicos en los que desea deshabilitar el escalado de la CPU, por ejemplo, la grabación de audio. A menos que tenga una necesidad específica, déjela a pedido
Panther
Por casualidad, ¿hay alguna manera de saber qué proceso cambia constantemente los valores mínimos / máximos de escalado de frecuencia? Siempre cambia y no sé por qué. ver askubuntu.com/questions/800797/how-to-enable-turbo-boost
Sebastien Lorber el
2

Puede instalar la herramienta rcconf debian:

sudo apt-get install rcconf

luego deshabilite el servicio "ondemand" desde allí.

Manuel
fuente
No puedo encontrar ninguna advertencia de desaprobación sobre la herramienta rcconf: te estás perdiendo el punto y has proporcionado una URL completamente incorrecta. No me refería a la forma en que Arch configuraba los scripts rc, sino más bien a la herramienta de Debian y eso se ve vivo y bien.
Manuel
¡Gracias por señalarlo y proporcionar un enlace útil! (Eliminé mi comentario inicial e incorrecto)
chiflado sobre natty
También editó la respuesta original!
Manuel
2

Configure todas las CPU en el regulador de rendimiento:

for GOVERNOR in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor; \
do \
    echo "performance" | sudo tee $GOVERNOR; \
done

Todos los gobernadores compatibles con el kernel de Linux:

  • rendimiento Ejecute la CPU a la frecuencia máxima.
  • powersave Ejecute la CPU a la frecuencia mínima.
  • userspace Ejecute la CPU a las frecuencias especificadas por el usuario.
  • ondemand Escala la frecuencia dinámicamente de acuerdo con la carga actual. Salta a la frecuencia más alta y luego posiblemente retrocede a medida que aumenta el tiempo de inactividad.
  • conservador Escala la frecuencia dinámicamente según la carga actual. Escala la frecuencia más gradualmente que bajo demanda.
  • Selección de frecuencia de CPU controlada por el programador schedutil

Ver https://www.kernel.org/doc/Documentation/cpu-freq/governors.txt

Mrskman
fuente
2
Nota, sudo echo > ...no hace lo que esperas: askubuntu.com/q/230476/158442
muru
1

Para hacer que todas las CPU funcionen con el máximo rendimiento continuamente en un escritorio o servidor Ubuntu, ejecute:

sudo chmod -x /etc/init.d/ondemand

en el indicador de shell e ingrese su contraseña. Esto deshabilita el script de shell que hace que todas las CPU se ejecuten a velocidad "OnDemand", lo que las convierte en predeterminadas a velocidad máxima (Rendimiento). Deberá reiniciar para que esto surta efecto.

Solo he probado esto en Ubuntu Jaunty 9.04, pero debería funcionar y no causar problemas en ninguna versión de Ubuntu.

Creo que los valores predeterminados de Ubuntu son extraños para esto. Un escritorio o servidor debería ejecutarse a toda velocidad, en mi opinión.

Saludos, George

George Gesslein II
fuente
1
No creo que sea extraño. Si bien ciertamente el móvil es el escenario más crítico para el ahorro de energía, la reducción del uso de energía también significa menos ruido del ventilador en un escenario de escritorio y menos calor en una sala de servidores. Correr constantemente a la velocidad máxima es un desperdicio, solo realmente necesario para casos raros en los que ondemandse equivoca.
bobince
@bobince: probablemente tenga razón, pero para un escritorio, he notado que OnDemand da una respuesta lenta en comparación con el rendimiento, y creo que la computadora aún puede dormir correctamente con el cambio anterior. Debe ser una opción en Sistema / Administración o Sistema / Preferencias.
George Gesslein II
Correcto, el único lugar donde esto tiene sentido es en computadoras portátiles donde el tiempo de carga se acorta y el tiempo de batería se extiende al escalar la CPU.
LassePoulsen
salvando el medio ambiente, alguien ??
loco por natty
1

En algunos sistemas, el gobernador 'ondemand' está desafortunadamente roto.

Este es el caso de "Intel (R) Core (TM) 2 Quad CPU Q9300 @ 2.50GHz" y kernel 2.6.32-42.

El núcleo cree que puede establecer la frecuencia individualmente para cada CPU, mientras que el hardware solo permite configurar la frecuencia en grupos de varias CPU (por ejemplo, CPU 0 y 1 juntas, y CPU 2 y 3 juntas).

Puede descubrir que el núcleo no es consciente de esto mirando los archivos / sys / devices / system / cpu / cpu * / cpufreq /fected_cpus que contienen "0", "1", "2", "3" en lugar de "0 1", "0 1", "2 3", "2 3".

El efecto visible de este desajuste es un proceso de subproceso único que comienza a funcionar a toda velocidad en una CPU (el gobernador 'ondemand' reacciona rápidamente) y luego, después de aproximadamente 20 segundos (depende de los detalles de configuración), pierde parte de su velocidad.

La razón es que el sistema operativo, con el gobernador 'ondemand', vuelve a aplicar periódicamente bajas frecuencias en las CPU inactivas, sin esperar que también cambie implícitamente las frecuencias de nuestra CPU ocupada. Ni siquiera es visible cuando miras / sys / devices / system / cpu / cpu * / cpufreq / * cur_freq o / proc / cpuinfo, ¡el sistema operativo simplemente no lo sabe!

Entonces, en estos sistemas, la solución es volver al simple regulador de "rendimiento".

PD: En mi caso, ejecutar las CPU constantemente en su frecuencia completa no cambió nada con respecto al ruido del ventilador. Supongo que cuando una CPU está inactiva, una frecuencia más baja o más alta no tendrá mucho impacto en su uso de energía.

Johan Boulé
fuente
0

¡Tengo un nuevo procesador AMD Athlon II X4 631 (procesador Fusion para el zócalo FM1) y no ahorra energía en absoluto (lo miré con un medidor de energía)! No tengo un turbo core, por lo que no necesito la configuración a pedido. La mayoría de los procesadores nuevos ahorran energía por sí mismos.

Al realizar una evaluación comparativa, hay una pequeña diferencia, en el rango de 1-2%, al comparar la configuración de demanda y rendimiento.

Don sild
fuente
¡Bienvenido a AskUbuntu! Es posible que desee hacer una copia de seguridad de sus declaraciones con estadísticas / investigaciones completas, ya que su respuesta podría interpretarse erróneamente como una opinión en lugar de una respuesta investigada.
Oyibo
Esto también está mal, Apple se mete en problemas esta semana por ralentizar los dispositivos para ahorrar energía
Xen2050
-1

Esto es antiguo, pero dado que nadie lo mencionó, y en aras de la exhaustividad, agregaré que el argumento de cómo la CPU que funciona a la velocidad máxima desperdiciará energía, producirá calor, ruido del ventilador, etc. es INCORRECTO .

Casi todas las CPU modernas, especialmente las CPU de escritorio / servidor, entrarán en modo de reposo profundo cuando estén inactivas (google race to idle).

La escala de voltaje probablemente ahorrará más energía, por lo que en las computadoras portátiles esto podría aumentar un poco el tiempo de ejecución, pero en las computadoras de escritorio y servidores que ejecutan el regulador de rendimiento estará bien para la mayoría de los usuarios 'normales' (que no ejecutan granjas de servidores o similares).

Utilizo el rendimiento del gobierno con mi i7-2600k y la temperatura de la CPU generalmente es de alrededor de 30 C.

Denis
fuente
Esto también está mal también. Monitoree las temperaturas de la CPU y cambie las frecuencias para verlo usted mismo (a menos que su sistema no lo implemente completa / correctamente). Vea también el enlace de Apple, suena como una escala regular de frecuencia / velocidad
Xen2050
@ Xen2050, para ver qué por ti mismo? ¿Implica que la CPU que funciona a 70 grados Celsius durante 2 segundos podría consumir más energía que una que funciona entre 5 y 6 segundos a 60 grados, o algo así en esa dirección? No es tan simple como monitorear la temperatura de la CPU en un momento particular.
Denis
@ Xen2050 su enlace apunta a iPhone, que es un arco o procesadores totalmente diferentes. He indicado que la escala de voltaje en combinación con un gobernador particular podría ayudar en las computadoras portátiles, por ejemplo, y mencioné los procesadores de escritorio (estación de trabajo) y servidores explícitamente, pero de hecho, de lo que estaba hablando existe incluso en los teléfonos desde hace años ( La situación es probablemente más complicada en este caso. Es posible que se requiera un gobernador adecuado para que la MPU utilice un estado C / P particular. De todos modos, lea una vez más lo que he escrito, y google 'carrera para inactivo' y modos de sueño profundo del procesador.
Denis