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