Zwiększenie częstotliwości timera Linuksa przyniesie korzyści w zakresie wydajności i optymalizacji

W pewnym momencie wielu z nas Odważyliśmy się zagrać z gubernatorami W naszym systemie robi się to po to, aby uzyskać poprawę wydajności lub w określonym celu, np. w przypadku obciążenia pracą, aplikacji, gier itp.

Tego typu modyfikacje, Zwykle nie są uwzględniane w ogólnych dystrybucjach I jest to zrozumiałe, ponieważ przekłada się to na zwiększenie lub zmniejszenie (w zależności od przypadku) zasobów naszego zespołu.

Wspominam o tym, ponieważ niedawno Inżynier Google zaproponował modyfikację la ustawienie domyślne del Timer jądra Linux, zwiększając częstotliwość przerw z 250 Hz do 1000 Hz.

Ta zmiana oznaczałoby wyższą częstotliwość przełączania zadań i zmniejszenie ilości czasu w harmonogramie zadań, coa w pewnych scenariuszach można by poprawić wydajność. Obecnie częstotliwość 250 Hz jest uznawana za kompromis między wydajnością, opóźnieniem i zużyciem energii.

Motywacja wniosku

jeden z głównych argumentów za tej zmiany jest Optymalizacja wydajności na urządzeniach z wyświetlaczami 120 Hz, coraz częściej spotykane na komputerach PC i urządzeniach mobilnych. Przy obecnym ustawieniu 250 Hz niedokładność kwantyzacji czasu wynosi około połowę czasu klatki, co ma wpływ na efektywność alokacji zasobów.

Co więcej, zaobserwowano, że dynamiczny mechanizm skalowania napięcia i częstotliwości (DVFS) ma tendencję do przyjmowania agresywnych strategii wyboru częstotliwości aby uniknąć spowolnień. Może to skutkować niepotrzebnym zużyciem energii w sytuacji, gdy zadanie zostało już ukończone, ale procesor nadal pracuje z wyższą częstotliwością, ponieważ jego kwantowy czas jeszcze się nie upłynął.

Wzrost częstotliwości przełączania zadań pozwoliłoby:

  • Poprawa efektywności dynamicznego zarządzania częstotliwościami (DVFS).
  • Bardziej precyzyjne przydzielanie czasu harmonogramowi zadań.
  • Zwiększono częstotliwość aktualizacji statystyk obciążenia procesora.
  • Skrócony czas oczekiwania na zaległe zadania.
  • Argumenty przeciwko poprawce

Ze swojej strony, Inny inżynier Google wyraził swoją dezaprobatę ze zmianą, argumentując, że Utrzymywanie częstotliwości timera na poziomie 250 Hz jest najkorzystniejsze w przypadku urządzeń o niskim poborze mocy, takich jak płyty IoT i urządzenia mobilne.

Według jego oceny, Zwiększenie częstotliwości do 1000 Hz może spowodować zwiększenie zużycia energii. Na przykład na urządzeniach z systemem Android w pewnych sytuacjach zaobserwowano wzrost użycia procesora nawet o 7%.

Ponadto, Wyższa częstotliwość timera oznaczałaby częstszą reaktywację procesora. Przy częstotliwości 250 Hz timery zaplanowane na t+1 ms, t+2 ms, t+3 ms i t+4 ms są grupowane w pojedyncze wybudzenie, natomiast przy częstotliwości 1000 Hz miałyby miejsce cztery indywidualne wybudzenia, co mogłoby zwiększyć zużycie energii.

Wyniki testów wydajnościowych

O sprawie portal Phoronix przeprowadził serię testów na komputerze z procesorem AMD Ryzen 9 9950X, aby ocenić wpływ zmiany częstotliwości. Wyniki były mieszane:

  • MLepsza wydajność przy 1000 Hz w:
    Lama.cpp
    nginx
    Super Tux Kart
    Selen
    Czas kompilacji jądra
  • Najlepsza wydajność przy 250 Hz na:
    Darktable
    PostgreSQL
    Niepokonany
    ksonotyczny
    mikser
    SVT-AV1
    RawTherapee

Jeśli chodzi zużycie energii, wyniki były następujące:

  • Ustawienie na 1000 Hz:
    Średnie zużycie: 144,2 W
    Minimalne zużycie: 0,18 W
    Maksymalne zużycie: 202,13 W
  • Ustawienie na 250 Hz:
    Średnie zużycie: 144,37 W
    Minimalne zużycie: 0,07 W
    Maksymalne zużycie: 202 W

Na koniec warto wspomnieć, że zwiększenie częstotliwości przerwań timera jądra do 1000 Hz oferuje korzyści w niektórych przypadkach użycia, zwłaszcza w aplikacjach wymagających częstszego przełączania zadań i na urządzeniach z wyświetlaczami o wysokiej częstotliwości odświeżania. Rozwiązanie to ma jednak też swoje wady w kontekście zużycia energii, szczególnie w przypadku urządzeń o niskim poborze mocy i w środowiskach, w których priorytetem jest efektywność energetyczna.

Na razie Propozycja jest wciąż przedmiotem debaty w obrębie danej społeczności, a jego przyjęcie będzie zależeć od głębszej analizy wpływu w różnych scenariuszach użytkowania.