Energijos taupymas su ArchLinux

Lapkritis 4, 2012 – 16:43

ArchLinux logotipas Viskas prasidėjo nuo to, kad systemd rodė, jog laptop-mode-tools kraunasi per 3 sekundes. Forume gavau pasiūlymą atsikratyti šio serviso. Kadangi argumentų kodėl turėčiau taip padaryti pačiam pranešime nebuvo, teko pačiam pasidomėti kas ir kaip.

Laptop-mode-tools naudojausi vien dėl “power management” (toliau tesiog PM, nors kai kuriose vietose turėsiu omenyje “power saving”). Vieninteliai svarbūs veiksmai buvo LCD apšvietimo sumažinimas, Intel HDA garso plokštės išjungimas, hdparm Advanced Power Management išjungimas ir cpufreq “governors” nustatymų keitimas persijungiant nuo baterijos ant laido.

LCD apšvietimas
Pasak laptop-mode-tools, mano kompiuteryje apšvietimas reguliuojamas per  /sys/class/backlight/acpi_video0/brightness failą. Taigi, tereikėjo pasirašyti systemd servisą, kuris įvykdytų “echo 0 > /sys/class/backlight/acpi_video0/brightness” komandą. Kituose kompiuteriuose tas failas gali būti /proc/acpi/video/VID/LCD/brightness.

Intel HDA PM
Truputį panaršius suradau, jog Intel HDA garso plokštės PM galiu įjungti /etc/conf.d/alsa faile, pakeisdamas POWERSAVE=0 į POWERSAVE=1. Ši opcija veikia tik Intel HDA ir AC97 chip’ams. Kadangi konfigūracinis failas vienaip ar kitaip, vis tiek yra perskaitomas užkraunant kompiuterį, tai skirtumo kuriame faile įjungti Intel HDA PM, nematau.

hdparm APM išjungimas
Nors šiaip esu visiškai už energijos taupymą, šioje vietoje to teko atsisakyti visiškai. Mano kompiuteris ilgą laiką dirbo su agresyviai nustatytu APM (0-96). Tokias opcijas jis dažniausiai pasigaudavo iš numatytųjų Linux distribucijų konfigūracijų, todėl greitai “smartctl -A /dev/sda” atrodė taip:

Terminalas

Nelabai gaudantiesiems SMART ir HDD technologijose: čia kritiškiausiai atrodo du faktoriai – ypač aukštas G-Sense_Error_Rate ir Load_Cycle_Count. Šie skaičiai stacionariuose kompiuteriuose labai dažnai būna labai arti 0 (<100). Nežinau kokios yra kietųjų diskų ilgaamžiškumo statistikos G-Sense_Error_Rate atžvilgiu, bet kartą jau teko netekti per 100 GB duomenų dėl kompiuterio naudojimosi važiuojančiame automobilyje. Spėju, kad tai ir buvo pagrindinė šio skaičiaus dydžio priežastis. Šiuo metu jis kyla labai nežymiai, tad dėl to nesijaudinu, o ir jum patariu nesijaudinti, o tik kartais užmesti akį į jį, jei smalsu kiek “sveika” buvo kelionė su įjungtu kompiuteriu.

Na, o štai Load_Cycle_Count yra skaičiukas, rodantis kiek kartų kietasis diskas buvo “užmigęs” taupydamas energiją t. y. galvutė pasitraukė nuo kietojo disko įrašomojo paviršiaus ir išjungė disko rotaciją. Tai smarkiai sumažina HDD energijos sąnaudas, tačiau kietasis diskas tokį veiksmą gali padaryti vidutiniškai 200 000 kartų. Geresni kietieji diskai tai gali atlikti kelis kartus dažniau.

Maniškis Load_Cycle_Count indikatorius jau seniai peršoko 200 000 ribą ir dabar kiekvieną dieną telieka melstis, kad Samsung šį HDD pagamino labai kokybiškai. Dabar kasdien darau atsargines kopijas į Ubuntu One, Dropbox ir dar šen bei ten. O kol kas, kad šis indikatorius kuo lėčiau stumtų kietąjį diską į kapines, galiu pasiūlyti vieną iš sprendimo būdų:

  1. Išjunkite HDD APM BIOS’uose.
  2. Kiekvieną kartą įjungus kompiuterį išjunkite APM su hdparm komanda: hdparm -B 255 /dev/sda
  3. Sumažinkite Linux log’inimą minimaliai: http://wdc.custhelp.com/app/answers/detail/a_id/5357

Kadangi, iki šiol naudojausi hdparm opcija per laptop-mode-tools, nusprendžiau nebeapkrauti savo kompiuterio įsijungimo laiko bereikalingomis komandomis ir APM išjungiau BIOS’uose. Deja, ne visi BIOS’ai siūlo tokią opciją, tad jums gali tekti naudotis hdparm komanda.

cpufreq “governors” nustatymas
Nuo kernel versijos 3.4, cpufreq buvo integruotas į Linux branduolį ir nebereikėjo instaliuoti cpufrequtils. Vietoje to, dabar visas CPU “throttling’as” gali būti atliekamas per /sys failus arba naudojantis cpupower įrankio “interface’u”. Tačiau mums net ir to nebereikia. ArchLinux numatytoji konfigūracija naudoja “ondemand” “governor”, kas duoda maksimalų energijos taupymą. Taip, taip – su “powersave” “governor” jūs energijos netaupote. Kadangi dirbant su kompiuteriu jis ilgiau atlikinės skaičiavimus žemesniu dažniu, tai ir ilgiau naudos daugiau energijos tuo pačiu žemesniu dažniu. Na, o pakėlus dažnį, jis skaičiuos trumpiau, tad ir trumpiau naudos daugiau energijos. Anksčiau pateiktoje nuorodoje teigiama, jog trumpam pakelti dažnį ir vėliau grįžti ilgesniam laikui į “idle state” labiau apsimoka. Kyla tik klausimas ar apsimoka perjungti “ondemand” į “performance” arba “userspace” su maksimaliu CPU dažniu, kai naudojate kompiuterį ant laido. Tam padariau mažytį testą su Intel Core i5-2410M, konvertuodamas 700 MB AVI failą į 128Kbps MP3. Rezultatus galite pamatyti patys:

Taigi, kas dėl “cpufreq” – man net nieko nereikėjo daryti, nes numatytasis “ondemand” “governer” yra nereikšmingai lėtesnis nei kiti. Failą jis sukonvertavo <1 sekunde lėčiau ir tam turbūt turėjo įtakos tai, kad testą su šiuo “governer” atlikinėjau paskutinėje vietoje, o todėl CPU spėjo šiek tiek užkaisti ir Intel Turbo Boost nebegalėjo taip dažnai pakelti dažnio iki maksimalaus 2.9 GHz. Na, o jeigu toks skirtumas jums yra svarbus, tai vietoje “cpufreq” konfigūravimo turbūt labiau verta būtų pagalvoti ar neapsimoka nusipirkti stacionaraus kompiuterio, kurio CPU mažiau rūpės energijos taupymas nei sparta.

Rezultatai
Atsikračius laptop-mode-tools, šiek tiek paspartinau kompiuterio užsikrovimą. Tačiau tada kompiuterio baterija duodavo srovę vos 2 valandom. Išnaudojus visas konfigūracijos galimybes pavyko šią trukmę padvigubinti iki 4 valandų. Žinoma, kompiuteris pilnom apkrovom su baterija veiks vienodai mažai laiko.

  1. One Response to “Energijos taupymas su ArchLinux”

  2. Dėkui už įdomų skaitalą. Kada sulauksim antros dalies apie tai, kaip “pavyko šią trukmę padvigubinti iki 4 valandų”? Nes paskutinė pastraipa intriguojanti :)

    By lmn on Gru 2, 2012

Sorry, comments for this entry are closed at this time.