Att öka Linux-timerfrekvensen kommer att ha prestanda- och optimeringsfördelar

Någon gång många av oss Vi vågade leka med guvernörerna I vårt system görs detta för att erhålla vissa prestandaförbättringar eller för något speciellt ändamål, såsom arbetsbelastning, applikationer, spel etc.

Denna typ av ändringar, De ingår vanligtvis inte i allmänna distributioner Och det är förståeligt varför, eftersom detta leder till en ökning eller minskning (beroende på fallet) i vårt teams resurser.

Jag nämner detta, för nyligen en Googles ingenjör har föreslagit ändring la standardinställningar del Linux kärna timer, vilket höjer dess avbrottshastighet från 250 Hz till 1000 Hz.

Denna förändring skulle innebära en högre frekvens vid uppgiftsbyte och en minskning av mängden tid i uppgiftsschemaläggaren, vilketoch effektiviteten skulle kunna förbättras i vissa scenarier. För närvarande anses 250Hz vara en balans mellan prestanda, latens och strömförbrukning.

Motivering till förslaget

EN av de viktigaste argumenten för av denna förändring är Prestandaoptimering på enheter med 120Hz-skärmar, allt vanligare på datorer och mobila enheter. Vid den nuvarande 250Hz-inställningen uppgår tidskvantiseringsunoggrannheten till ungefär hälften av ramtiden, vilket påverkar resursallokeringseffektiviteten.

Dessutom har det observerats att den dynamiska spännings- och frekvensskalningsmekanismen (DVFS) tenderar att anta aggressiva frekvensvalsstrategier för att undvika inbromsningar. Detta kan resultera i onödig strömförbrukning när en uppgift redan har avslutats, men processorn fortsätter att köra med en högre frekvens eftersom dess tidskvantum ännu inte har löpt ut.

Ökningen av frekvensen av uppgiftsbyte skulle tillåta:

  • Förbättrad effektivitet i dynamisk frekvenshantering (DVFS).
  • Mer exakt fördelning av tider för uppgiftsschemaläggning.
  • Ökad frekvens för uppdatering av CPU-belastningsstatistik.
  • Minskad väntetid för pågående uppgifter.
  • Argument mot ändringen

För sin del, En annan Google-ingenjör uttryckte sin oenighet med förändringen, med argumentet att Att hålla timerfrekvensen på 250 Hz är mest fördelaktigt för enheter med låg effekt, såsom IoT-kort och mobila enheter.

Enligt hans bedömning, En ökning av frekvensen till 1000 Hz kan orsaka en ökning av strömförbrukningen. På Android-enheter har till exempel en ökning på upp till 7 % i processorförbrukning observerats i vissa situationer.

Dessutom, En högre timerfrekvens skulle innebära en mer frekvent återaktivering av CPU:n. Vid 250 Hz är timers schemalagda vid t+1 ms, t+2 ms, t+3 ms och t+4 ms grupperade i en enda väckning, medan det vid 1000 Hz skulle finnas fyra individuella väckningar, vilket skulle kunna öka strömförbrukningen.

Prestandatestresultat

Om fallet, portalen Phoronix genomförde en serie tester på en PC med en AMD Ryzen 9 9950X CPU för att utvärdera effekten av frekvensändringen. Resultaten var blandade:

  • MBättre prestanda med 1000 Hz i:
    Llama.cpp
    nginx
    Super Tux Kart
    Selen
    Sammanställningstider för kärnor
  • Bästa prestanda vid 250Hz på:
    darktable
    PostgreSQL
    Oövervunnen
    Xonotisk
    Blandare
    SVT-AV1
    rawtherapee

Beträffande energiförbrukning, blev resultaten följande:

  • Inställning på 1000 Hz:
    Medelförbrukning: 144,2 W
    Minsta förbrukning: 0,18 W
    Maximal förbrukning: 202,13 W
  • Inställning på 250 Hz:
    Medelförbrukning: 144,37 W
    Minsta förbrukning: 0,07 W
    Maximal förbrukning: 202 W

Slutligen är det värt att nämna att en ökning av kärntimerns avbrottsfrekvens till 1000 Hz ger fördelar i vissa användningsfall, särskilt i applikationer som kräver mer frekvent uppgiftsväxling och på enheter med hög uppdateringsfrekvens. Men det har också nackdelar när det gäller strömförbrukning, särskilt i lågeffektsenheter och miljöer där energieffektivitet är en prioritet.

För tillfället Förslaget är fortfarande under debatt inom samhället och dess antagande kommer att bero på en djupare analys av effekterna i olika användningsscenarier.