Jak probíhal Fedora PowerManagement Testday

3. 6. 2009
Doba čtení: 6 minut

Sdílet

Dne 2. dubna se konal další z plánovaných dnů testování vlastností linuxové distribuce Fedora. Tento den si vývojáři položili velký cíl, a to podívat se na zoubek správě napájení ve Fedoře. Pokud měl někdo zájem podívat se na to, jak moc "zelený" Linux je, měl možnost se připojit.

Fedora Testovací dny

Fedora Testday jsou konány pravidelně a mají za cíl pokusit se zlepšit testování distribuce před vydáním, tak aby se každý uživatel mohl podílet na projektu, na kterém mu záleží a je pro něj důležitý (příkladem Testday jsou: Nouveau NVIDIA driver, Power Management, KVM Virtualization a mnoho dalších). Jedním z důležitých faktorů z pohledu uživatele je rovněž, možnost zkusit si nové připravované vlastnosti a ukázku komunitního vývoje a možnost podílet se na vývoji Fedory. Během testování se také přišlo na mnoho závažných i méně důležitých chyb.

Power management Testday

Důležitou částí systému je sledovat jeho spotřebu. Test byl určen hlavně pro uživatele přenosných počítačů. Pevné počítače nebyly hlavním cílem, protože se nedá jednoduše měřit jejich spotřeba, jedině pomocí externích wattmetrů. Některé počítače tyto informace jsou schopny poskytnout, avšak převážně se jedná o dražší servery známých značek.

Pokusili jsme se změřit a nalézt aplikace, které mají velkou spotřebu, a následně pak reagovat a nahlásit chyby. Další důležitou částí bylo poupravit inicializační skripty tak, aby podporovali PowerManagement ve Fedoře. Potom také vyzkoušet a upravit práci Bluetooth on demand (na požádání, Bluetooth se zapne až v případě uživatelova požadavku, tím pádem se sníží spotřeba).

Jak testovat spotřebu

Nástroje na testování spotřeby můžeme rozdělit do 2 – 3 typů, softwarové, hardwarové, a externí hardwarové. každé mají svá pro i proti. Externí HW jsme vyloučili předem, uživatelé nemají přístup k takovým měřícím prostředkům a měření se těžko automatizuje (například říci uživateli ať každou sekundu (10 s) zapisuje stav)

Zvoleny byly následující možnosti:

  • powertop – nástroj vyvinutý firmou Intel na testování spotřeby intel procesorů. Dokáže poskytnout také informace, kterak systém vylepšil a spotřeba byla snížena. Pro plnou funkčnost vyžaduje provoz pod root uživatelem pak bude mít přístup ke všem datům, která vyžaduje. Aplikace potom poskytne data o voláních, stavech procesoru, vytížení jednotlivých aplikací
  • bltk a ACPI – Obecné informace o stavu baterie jsou vytaženy z ACPI rozhraní notebooků, a tím jsme schopni zjistit změnu stavu baterie a zjistit momentální spotřebu. Aplikace bltk (battery life toolkit) je k tomu primárně určena. Je tvořena různými druhy zatížení (různé simulace, například zatížení čtenář, simuluje prohlížení PDF souborů, zatížení Office, simuluje zatížení běžné kancelářské práce v balíku Open Office a další) a průběžně
  • externí měřič spotřeby – poskytuje přesné nezávislé informace o spotřebě. Byl by to ideální společník pro měření. Zásadním problémem byla jeho nedostupnost mezi širokou veřejností a také problém zautomatizování činnosti. Problematická by byla také interpretace výsledků (nevíme, v jakém stavu se měřený počítač nachází).

Případy užití

Vytvořili jsme pro testování různé případy použití, které měly simulovat rozdílnou zátěž systému. Jako důležité se ukázalo otestovat, co vlastně uživatelé vyžadují (personal use), dále pak zátěže v init 1 režimu, kdy je systém ve stavu minimální využit zátěže.

  • QA:Testcase_Po­wer_Managemen­t_personal – 10 minut práce obyčejného uživatele, to, co zrovna uživatele napadlo, že obvykle dělává 
  • QA:Testcase_Po­wer_Managemen­t_Tuned – byla napsána speciální aplikace provádějící zátěž sítě a disku a byly měřeny dva po sobě jdoucí běhy (očekávané bylo zlepšení výkonu v druhém běhu)
  • QA:Testcase_Po­wer_Managemen­t_Bluetooth – testoval službu Bluetooth on demand, v tomto testu šlo o to nalézt případné chyby či problémy na různých architekturách
  • QA:Testcase_Po­wer_Managemen­t_init1 – zátěžový test v init1 režimu, který provádí zátěž procesoru, disku a služby vsftpd a testuje danou spotřebu pro každý případ.
  • QA:Testcase_Po­wer_Managemen­t_bltk – test aplikace bltk (battery life toolkit), výstupem byly poskytnuté informace z acpi baterií v přenosných počítačích při dané zátěži

Dosažené výsledky

Na jednotlivých grafech můžete vidět různé počty probuzení procesorů (z výsledků nástroje powertop)

Power Management test

Zde můžeme vidět počet vzbuzení mezi jednotlivými typy zátěží. Dle očekávání vytížení bzip komprimací všech procesorů způsobí největší zátěž.Další dva typy jsou závislé na typu disků, Jak moc často se musí volat systém a jak často dochází k probouzení.

Power Management test

Dle očekávání ve většině případů dopadl druhý běh lépe.

Power Management test

Zde vidíme rozdíly předchozího příkladu, mezi prvním a druhým během.

bitcoin školení listopad 24

Ve výsledcích nastroje powertop jsou pak doporučení, jak systém upravit tak, aby se choval lépe a měl menší spotřebu. Tyto informace může využít každý a nastavit si podle nich systém.

Ukázka doporučení z výstupu powertop

# powertop -d -t 20
...
A USB device is active 100.0% of the time:
USB device  3-2 : Biometric Coprocessor (STMicroelectronics)

Suggestion: Enable USB autosuspend by pressing the U key or adding
usbcore.autosuspend=1 to the kernel command line in the grub config

Suggestion: increase the VM dirty writeback time from 4.99 to 15 seconds with:
  echo 1500 > /proc/sys/vm/dirty_writeback_centisecs
This wakes the disk up less frequenty for background VM activity

Suggestion: Enable SATA ALPM link power management via:
  echo min_power > /sys/class/scsi_host/host /link_power_management_policy
or press the S key.
Suggestion: enable the noatime filesystem option by executing the following command:
   mount -o remount,noatime /          or by pressing the T keynoatime disables persistent access time of file accesses, which causes lots of disk IO.

Suggestion: Enable wireless power saving mode by executing the following command:
  echo 5 > /sys/bus/pci/drivers/iwl3945/0000:03:00.0/power_level
This will sacrifice network performance slightly to save power.

Suggestion: Disable 'hal' from polling your cdrom with:
hal-disable-polling --device /dev/scd0 'hal' is the component that auto-opens awindow if you plug in a CD but disables SATA power saving from kicking in. 

Obecné rady, jak ušetřit energii:

  • Všechny rady jsou k nalezení na stránce PowerManagement.
  • Vypínat služby, které nejsou potřeba nebo nejsou dostupné, týká se různých démonů,
  • nastavit si větší diskovou cache a a prodloužit dobu synchronizace na disk. U notebooků by to nemělo vadit, díky interním bateriím, které pokryjí možné krátké výpadky napětí,
  • vypnout vše nepotřebné v BIOSu (například různé porty či virtualizaci),
  • nastavit harddisk na rychlejší přechod do úsporného režimu,
  • vypnout CD-ROM dotazování,
  • nastavit autosuspend mód u USB zařízení,
  • nastavit screensaver na vypínání displeje, nikoliv překrytí černou barvou,
  • vypnout nepotřebná zařízení (např. tiskárny, zasunuté USB Flash disky, pokud nejsou používány trvale),
  • snížit rychlost síťové karty (pokud máme připojení k internetu < 10Mbit, není třeba mít síťovou kartu zapnutou v módu 100Mbit).

Nalezené chyby:

  • Mezi chybami se vyskytly problémy s Bluetooth na některých platformách.
  • Dále se objevily problémy s aplikací bltk, problém byl v nastavení proměnných prostředí.
  • Zásadním problémem, na který jsme narazili, byla chyba v kernelu způsobující časté čekání, a tím pádem zátěž procesoru hodně ovlivnila celkovou zátěž systému.
  • Další chyby k nalezení na stránkách PowerManagement pro Fedoru v sekci Bugzilla 

Závěrem

Z testovacího dne máme 21 odlišných výsledků od 18 testerů. Děkuji všem zúčastněným, kteří aktivně testovali, a věřím, že den byl přínosný i pro ostatní, kteří mohli sledovat komunitní vývoj Fedory. Testovacích dnů bude ještě hodně. Přijďte se podívat na nové možnosti a svět bez hranic. I díky vám uživatelům se daří Linux zlepšovat a zajistit kvalitu do budoucna. V případě hlubšího zájmu se nebojte podívat na stránky fedora Wiki, či se připojit na IRC kanál #fedora-qa.