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.