tuned i PM QoS
Wśród nowości w Fedorze 11 (dzisiaj beta),
w dziale zarządzania
energią ukryto informację o tuned
. Jest
to demon (kolejny…) któremu postawiono za cel dopasowanie ustawień
oszczędności energii w Linuksie do bieżącego wykorzystania komputera.
Programik jest centralą zbierającą informacje z wtyczek monitorujących
(intensywność wykorzystania dysków, sieci, kart dźwiękowych, pamięci)
i podejmującą decyzję o wprowadzeniu tuningów.
Zadanie ambitne, w tej chwili jednak większość pomysłów siedzi
jeszcze w głowie dewelopera. Obecnie tuned
ma tylko
jedną wtyczkę zmieniającą ustawienia dysku. Monitorujących jest 100%
więcej — ilość danych wymieniona z dyskiem i przez sieć. Jest to
jednocześnie rzadki przykład pakietu oprogramowania open source, w którym
objętosć dokumentacji stanowczo przewyższa objętość kodu programu.
Osobiście widzę tu pewną duplikację możliwości dawanych przez interfejs Power Management Quality of Service jądra Linux. Po szerszy opis odsyłam do slajdów z Embedded Linux Conference 2008. W skrócie: aplikacje informują jądro o wymaganiach dotyczących opóźnień. Na podstawie tych informacji Linux może wybrać najniższy stan zasilania urządzeń, spełniający wymagania programów. Urządzenie wyłączone prądu nie bierze, bateria starcza na dłużej, lasy tropikalne są ocalone, /* ekologiczne pierdu pierdu */.
Zazwyczaj im niższy stopień zasilania, tym wolniejsza reakcja bądź czas ,,wybudzenia'' urządzenia. Przykład ze slajdów: przeglądarka WWW może określić swoje tolerowane opóźnienie na 2 sekundy. W takim wypadku jądro może uśpić interfejs sieciowy i budzić go co dwie sekundy (w uproszczeniu) na krótką chwilę potrzebną do odebrania danych. Komunikator żądając opóźnienia nie większego niż ½ sekundy wymusi czterokrotnie częstsze budzenie interfejsu. Gra sieciowa, potrzebująca zerowych opóźnień, wyłączy mechanizmy oszczędzania energii karty sieciowej.
PM QoS są już obecne w jądrze:
% ls /dev/*latency*
/dev/cpu_dma_latency /dev/network_latency
(i network_throughput
do kompletu)
oraz dostępne dla użytkowników przez
interfejs DeviceKit-power.
Comments
Comments powered by Disqus