Augmentar la freqüència del temporitzador de Linux tindrà beneficis de rendiment i optimització

En algun moment molts de nosaltres vam tenir l'atreviment de jugar amb els governadors en el nostre sistema, això amb la finalitat d'obtenir algunes millores de rendiment o amb algun propòsit en particular, digueu-vos càrrega de treball, aplicacions, jocs, etc.

Aquest tipus de modificacions, no solen ser incloses de manera general a les distribucions i és comprensible el perquè, ja que això es tradueix en un augment o disminució (depenent del cas) als recursos del nostre equip.

Esmente això, perquè fa poc un enginyer de Google ha proposat modificar la configuració per defecte del temporitzador del nucli de Linux, elevant la seva taxa d'interrupció de 250 Hz a 1000 Hz.

aquest canvi implicaria una major freqüència en la commutació de tasques i una reducció del quantum de temps al programador de tasques, la qual cosae podria millorar l'eficiència en determinats escenaris. Actualment, el valor de 250 Hz es considera un equilibri entre rendiment, latència i consum denergia.

Motivació de la proposta

La dels principals arguments a favor d'aquest canvi és la optimització del rendiment en dispositius amb pantalles de 120 Hz, cada vegada més comuns a PCs i dispositius mòbils. Amb la configuració actual de 250 Hz, la inexactitud en la quantificació del temps equival a aproximadament la meitat del temps de quadre, cosa que afecta l'eficiència en l'assignació de recursos.

A més, s'ha observat que el mecanisme d'escala dinàmica de voltatge i freqüència (DVFS) tendeix a adoptar estratègies agressives de selecció de freqüència per evitar alentiments. Això pot resultar en un consum d'energia innecessari quan una tasca ja ha finalitzat el seu procés, però el processador continua funcionant a una freqüència més gran pel fet que el seu quantum de temps encara no s'ha acabat.

L'increment de la freqüència de canvi de tasques permetria:

  • Millor eficiència a l'administració de freqüència dinàmica (DVFS).
  • Assignació més acurada dels temps del programador de tasques.
  • Més freqüència en l'actualització de les estadístiques de càrrega del CPU.
  • Reducció del temps despera de les tasques pendents.
  • Arguments en contra de la modificació

D'altra banda, un altre enginyer de Google va expressar el seu desacord amb el canvi, argumentant que mantenir la freqüència del temporitzador en 250 Hz és més beneficiós per a dispositius de baix consum, com a plaques IoT i dispositius mòbils.

Segons la seva avaluació, augmentar la freqüència a 1000 Hz podria ocasionar un increment del consum d'energia. En dispositius amb Android, per exemple, s'ha observat un augment de fins al 7% en el consum del processador en certes situacions.

A més, una major freqüència del temporitzador implicaria una reactivació més freqüent de la CPU. A 250 Hz, els temporitzadors programats en t+1 ms, t+2 ms, t+3 ms it+4 ms s'agrupen en una sola reactivació, mentre que a 1000 Hz hi hauria quatre reactivacions individuals, cosa que podria incrementar el consum energètic.

Resultats de proves de rendiment

Sobre el cas, el portal Phoronix va realitzar una sèrie de proves en un PC amb CPU AMD Ryzen 9 9950X per avaluar l'impacte del canvi de freqüència. Els resultats van ser mixts:

  • Meixor rendiment amb 1000 Hz a:
    Truca.cpp
    nginx
    Super Tux Kart
    Seleni
    Temps de compilació del nucli
  • Millor rendiment amb 250 Hz a:
    Darktable
    PostgreSQL
    Invicte
    Xonòtic
    liquadora
    SVT-AV1
    RawTherapee

Quant al consum d'energia, els resultats van ser els següents:

  • Configuració a 1000 Hz:
    Consum mitjà: 144,2 W
    Consum mínim: 0,18 W
    Consum màxim: 202,13 W
  • Configuració a 250 Hz:
    Consum mitjà: 144,37 W
    Consum mínim: 0,07 W
    Consum màxim: 202 W

Finalment, cal esmentar que l'augment de la taxa d'interrupció del temporitzador del nucli a 1000 Hz ofereix avantatges en certs casos d'ús, especialment en aplicacions que requereixen canvis de tasca més freqüents i dispositius amb pantalles d'alta taxa de refresc. Tot i això, també presenta desavantatges en termes de consum d'energia, particularment en dispositius de baix consum i entorns on l'eficiència energètica és prioritària.

De moment, la proposta continua sent objecte de debat dins de la comunitat i la seva adopció dependrà d'una anàlisi més profunda dels impactes a diferents escenaris d'ús.