Noticia Aumentar la frecuencia del temporizador de Linux tendra beneficios de rendimiento y optimizacion

temporizador-de-Linux.png


En algún momento muchos de nosotros tuvimos el atrevimiento de jugar con los gobernadores en nuestro sistema, esto con la finalidad de obtener algunas mejoras de rendimiento o con algún propósito en particular, dígase carga de trabajo, aplicaciones, juegos, etc.

Este tipo de modificaciones, no suelen ser incluidas de manera general en las distribuciones y es comprensible el porqué, ya que esto se traduce en un aumento o disminución (dependiendo el caso) en los recursos de nuestro equipo.

Menciono esto, porque hace poco un ingeniero de Google ha propuesto modificar la configuración predeterminada del temporizador del kernel de Linux, elevando su tasa de interrupción de 250 Hz a 1000 Hz.

Este cambio implicaría una mayor frecuencia en la conmutación de tareas y una reducción del quantum de tiempo en el programador de tareas, lo que podría mejorar la eficiencia en determinados escenarios. Actualmente, el valor de 250 Hz se considera un equilibrio entre rendimiento, latencia y consumo de energía.

Motivación de la propuesta​


Uno de los principales argumentos a favor de este cambio es la optimización del rendimiento en dispositivos con pantallas de 120 Hz, cada vez más comunes en PCs y dispositivos móviles. Con la configuración actual de 250 Hz, la inexactitud en la cuantificación del tiempo equivale a aproximadamente la mitad del tiempo de cuadro, lo que afecta la eficiencia en la asignación de recursos.

Además, se ha observado que el mecanismo de escala dinámica de voltaje y frecuencia (DVFS) tiende a adoptar estrategias agresivas de selección de frecuencia para evitar ralentizaciones. Esto puede resultar en un consumo de energía innecesario cuando una tarea ya ha finalizado su proceso, pero el procesador sigue funcionando a una frecuencia mayor debido a que su quantum de tiempo aún no ha concluido.

El incremento de la frecuencia de cambio de tareas permitiría:

  • Mejor eficiencia en la administración de frecuencia dinámica (DVFS).
  • Asignación más precisa de los tiempos del programador de tareas.
  • Mayor frecuencia en la actualización de las estadísticas de carga del CPU.
  • Reducción del tiempo de espera de las tareas pendientes.
  • Argumentos en contra de la modificación

Por su parte, otro ingeniero de Google expresó su desacuerdo con el cambio, argumentando que mantener la frecuencia del temporizador en 250 Hz es más beneficioso para dispositivos de bajo consumo, como placas IoT y dispositivos móviles.

Según su evaluación, aumentar la frecuencia a 1000 Hz podría ocasionar un incremento en el consumo de energía. En dispositivos con Android, por ejemplo, se ha observado un aumento de hasta 7% en el consumo del procesador en ciertas situaciones.

Además, una mayor frecuencia del temporizador implicaría una reactivación más frecuente de la CPU. A 250 Hz, los temporizadores programados en t + 1 ms, t + 2 ms, t + 3 ms y t + 4 ms se agrupan en una sola reactivación, mientras que a 1000 Hz habría cuatro reactivaciones individuales, lo que podría incrementar el consumo energético.

Resultados de pruebas de rendimiento​


Sobre el caso, el portal Phoronix realizó una serie de pruebas en una PC con CPU AMD Ryzen 9 9950X para evaluar el impacto del cambio de frecuencia. Los resultados fueron mixtos:

  • Mejor rendimiento con 1000 Hz en:
    Llama.cpp
    nginx
    SuperTuxKart
    Selenium
    Tiempos de compilación del kernel
  • Mejor rendimiento con 250 Hz en:
    Darktable
    PostgreSQL
    Unvanquished
    Xonotic
    Blender
    SVT-AV1
    RawTherapee

En cuanto al consumo de energía, los resultados fueron los siguientes:

  • Configuración a 1000 Hz:
    Consumo promedio: 144,2 W
    Consumo mínimo: 0,18 W
    Consumo máximo: 202,13 W
  • Configuración a 250 Hz:
    Consumo promedio: 144,37 W
    Consumo mínimo: 0,07 W
    Consumo máximo: 202 W

Finalmente, cabe mencionar que el aumento de la tasa de interrupción del temporizador del kernel a 1000 Hz ofrece ventajas en ciertos casos de uso, especialmente en aplicaciones que requieren cambios de tarea más frecuentes y en dispositivos con pantallas de alta tasa de refresco. Sin embargo, también presenta desventajas en términos de consumo de energía, particularmente en dispositivos de bajo consumo y entornos donde la eficiencia energética es prioritaria.

Por el momento, la propuesta sigue siendo objeto de debate dentro de la comunidad y su adopción dependerá de un análisis más profundo de los impactos en distintos escenarios de uso.

Continúar leyendo...