Hlavní navigace

Počítač běžící, větrající, spící (2)

3. 6. 2002
Doba čtení: 8 minut

Sdílet

Dnes budeme pokračovat v tématu monitorování a řízení hardwaru – dozvíme se, jak na kontrolu disků a co čekat od systému S.M.A.R.T., jak se uspává počítač, jak mu lze nastavit budík a k čemu slouží APM, ACPI a DPMS.
Co znamená S.M.A.R.T.?

Zkratka S.M.A.R.T. znamená Self-Monitoring, Analysis and Reporting Technology System. Jedná se o standard protokolu pro monitorování periférií k ukládání dat (ATA a SCSI) – nejčastěji disků. S.M.A.R.T. umožňuje předpovědět blížící se havárii ještě v době, kdy je disk funkční a data lze jednoduše zachránit.

S.M.A.R.T. umí sledovat různé parametry disku – provozní dobu, počet startů, dobu roztáčení disku (i případná neroztočení), počet nevydařených čtení a zápisů, parametry hlavičky (rychlost, počet chyb při vystavení aj.), teplotu, chyby při přenosu dat a další (ne každý disk však umí všechny tyto funkce). Ke každému z parametrů je přiřazena limitní hodnota a kritičnost jejího překročení (zda se jedná o orientační hodnotu doporučené životnosti, kritický parametr disku, nebo havarijní stav). Pokud některý kritický parametr překročí povolenou hodnotu, S.M.A.R.T. ohlásí havarijní stav.

Kromě toho může S.M.A.R.T. kontrolovat kvalitu dat čtených z disku ještě před jejich převodem do digitální podoby, a tak s předstihem nalézt slábnoucí místa a včas alokovat ve vyhrazené oblasti náhradní bloky. Tento test lze provádět průběžně, na žádost, nebo při odstavení systému. Disk též může uchovávat záznam o opravených chybách a provedených testech.

Pod Linuxem existuje hned několik nástrojů používajících S.M.A.R.T. – univerzální smartsuite a

ide-smart, oba s podobnou funkcí (smartsuite však zná i slovní význam jednotlivých veličin), a dále pak jednoúčelový hddtemp, sloužící ke sledování teploty pevného disku. Existují k nim i GUI nadstavby.

Ohlásí-li nástroj kritický stav disku, nevypínejte jej a okamžitě zazálohujte data. Selhání testu může znamenat, že v nejbližších hodinách dojde k poškození disku nebo že se při příštím zapnutí již nerozběhne!

Protože S.M.A.R.T. záznamy nelze žádným běžným způsobem vymazat, mohou nám též sloužit jako pomůcka při koupi použitého disku. Pro zajímavost vypisuji hodnoty z mého disku:

Attribute                    Flag     Value Worst Threshold Raw Value
(  1)Raw Read Error Rate     0x000a   116   096   000       193032853
(  3)Spin Up Time            0x0006   074   073   000       0
(  4)Start Stop Count        0x0013   100   100   020       421
(  5)Reallocated Sector Ct   0x0013   100   100   036       0
(  7)Seek Error Rate         0x000b   080   060   030       360609055
( 10)Spin Retry Count        0x0013   100   100   097       0
( 12)Power Cycle Count       0x0013   099   099   020       1766
(199)UDMA CRC Error Count    0x000a   200   200   000       3

Disk je používán denně zhruba tři roky a počítač často odkládá data na disk nebo kompiluje. V datech vidíte například i tři chyby na sběrnici, které jsem zřejmě způsobil loňským pokusem o přetaktování (čemuž nasvědčuje i tehdejší kernel panic).

APM a ACPI

Další zajímavou schopností počítače je uspání. Odcházíme-li na několik hodin od počítače, nemusíme jej vypínat, ale stačí jej uspat. Po probuzení je možné pokračovat v práci již za několik sekund. Přednost této funkce zvlášť vynikne, pokud ji spojíme se zpomalením nebo zastavením větráků.

Pod těmito zkratkami se skrývají dva odlišné standardy pro řízení spotřeby počítače.

Starší APM (Advanced Power Management) je specifikací BIOSu, který zajišťuje tuto funkci. Příslušné rozhraní operačního systému má pak za úkol komunikovat s BIOSem. Definuje několik stavů systému, mezi kterými může přecházet, a to jak z popudu operačního systému či uživatele, tak z popudu BIOSu. Z těchto stavů jsou běžné standby (S1/POS, power saving, stav sníženého příkonu), ve kterém se vyšle perifériím signál ke snížení příkonu, a suspend (S3/STR, suspend to RAM, stav odložení), ve kterém dojde k odpojení napájení většiny pefiférií a uložení jejich stavu do paměti RAM. Při probuzení se jejich stav obnoví. Zahrnuje to např. i obnovení stavu grafické karty. V tomto stavu je procesor zcela neaktivní a teplota uvnitř kejsu významně klesá, takže je možné některé větráky vypnout nebo velmi zpomalit. Posledním stavem je off (vypnuto). U ATX systémů se liší od úplného odpojení ze zásuvky, neboť počítač v tomto stavu může monitorovat některé periférie (např. modem, síťovou kartu, hodiny, klávesnici či myš a samozřejmě tlačítko na kejsu) a na základě signálu z nich se zapnout.

Existuje ještě jeden zajímavý stav, který však podporuje jen minimum počítačů – suspend to disk (STD, hibernace – odložení na disk). Majitelé ostatních počítačů však nemusí zoufat, neboť tu existuje softwarová náhrada – swsusp od Miquela van Smoorenburga. Při jeho testování jsem však narazil na dva problémy – nekorektní obnovení stavu některých periférií (USB) a fakt, že při plné paměti nebylo data kam odložit.

Abychom mohli APM plně využít, musíme jej aktivovat a nastavit jak v BIOSu, tak v jádře, a navíc mít spuštěný speciální démon. Díky tomuto démonu můžeme při přechodu mezi stavy spustit akce definované v souboru /etc/apmd_proxy – např. vysunutí PCMCIA karet, zpomalení či vypnutí větráků, změna konfigurace senzorů či cokoliv jiného, co nás napadne. Některé periférie se odpojí automaticky – např. USB-to-USB kabel vyšle odpojovací signál druhému počítači.

APM umí přejít do odloženého stavu i po delším stavu nečinnosti, rozpoznávaného podle nepřicházejících přerušení. V GNU-Linuxu je však tato funkce problematická – pokud nemonitorujeme přerušení od systémového disku, počítač přejde do úsporného stavu třeba během dlouhé kompilace a to je jistě nežádoucí. Na druhou stranu, pokud jej monitorujeme, počítač do tohoto stavu na běžném systému nepřejde sám od sebe nikdy – vždy se najde aplikace, která během deseti minut sáhne na disk – ať už je to správce modulů, démon na odesílání pošty, šetřič obrazovky či cokoliv jiného. Na program poskytující inteligentní řešení tohoto problému (rozdělením úloh na odložitelné a neodložitelné) jsem zatím nenarazil.

Nicméně ruční odložení počítače pomocí uživatelské aplikace apm(1) nám fungovat bude. Odcházíme-li na vycházku, počítač uspíme příkazem:

apm --suspend

Novější ACPI (Advanced Configuration and Power Interface) přenechává větší část práce na operačním systému. Na rozdíl od APM může být každá periférie v jiném stavu, takže ty části počítače, které operační systém zrovna nepotřebuje, mohou odpočívat. Některé periférie (např. i tlačítko na kejsu) zasílají systému signály, které ACPI vyhodnocuje.

Podobně jako u APM je i u ACPI potřeba speciální démon, který spouští akce nakonfigurované v adresáři /etc/acpi.

APM a ACPI se vzájemně vylučují – při zapnuté podpoře ACPI se automaticky deaktivuje APM.

V Linuxu je podpora ACPI ve vývoji, a tak je zatím vhodnější použít APM, pokud s našim systémem spolupracuje.

Časované probuzení

Již jsem se zmínil, že existuje možnost probuzení počítače signálem z hodin.

Pokud je počítač v odloženém stavu, je pravomoc toto nastavit zcela na systému řízení spotřeby. V případě APM k tomu slouží apmsleep(1).

Ve stavu vypnutí je situace poněkud složitější. Tuto informaci si sice ukládá vždy obvod RTC, kde ji lze také nastavit, ale některé BIOSy informaci pravidelně přepisují při zapnutí, jiné i při vypnutí počítače; další při vypnutí přepisují pouze hodnotu zapnuto/vypnuto. Proto vyžaduje rozchození této funkce trochu experimentování. K němu slouží

nvram-wakeup, který umí změnit tuto hodnotu přímo v BIOSu. Její umístění tam však musíme najít sami – liší se nejen u různých základních desek, ale někdy dokonce u různých verzi BIOSu!

Další funkce a možnosti

Dynamické řízení frekvence procesoru vypadalo v jistých dobách jako nadějná cesta k úsporám energie. V Linuxu je však podpora této funkce minimální – speciální nástroje pro několik notebooků a podpora několika čipů pomocí icspll v balíčku lm_sensors.

Zastavení disku s časovou prodlevou – pokud máme víc disků, je rozumné zastavit ty z nich, které právě nepoužíváme. Mnohé to umí automaticky a stačí je k tomu instruovat programem hdparm(8) (podobný nástroj existuje i pro SCSI disky). Lze je zastavit i ručně pomocí:

hdparm -Y /dev/zařízení

Na internetu lze nalézt i nástroje schopné zastavit starší disky, které nepodporují automatické zastavení s prodlevou.

Změna rychlosti CD mechaniky sice nepřispívá k šetření energií, ale k omezení hlučnosti zcela jistě. Posloucháte-li často MP3 z cédéčka na rychlé mechanice, jistě znáte ono uíííí… ticho… uíííí…

ticho… (není divu, když se CD roztáčí na rychlost až 300 km/h, aby přečetlo data 600× rychleji, než je MP3 potřebuje). Po změně rychlosti pomocí cdspeed nebo cdspeed mechanika jen neslyšně bzučí.

DPMS (Energy Star)

Při této příležitosti bychom též měli zmínit i VESA DPMS (Display Power Management System). Je to vůbec první ze systémů pro úsporu energie, vztahující se pouze na monitory. Definuje několik úsporných stavů monitoru – standby (připraven), suspend (odložený) a off (vypnutý). Systém většinou přejde od zapnutého monitoru (případně šetřiče obrazovky) do zhasnutého stavu (blank) a poté v určitých intervalech prochází jednotlivými úspornými stavy DPMS (v uvedeném pořadí). Každý další stav má nižší spotřebu a delší dobu náběhu monitoru. Pro konzoli jej lze nastavit v BIOSu nebo pomocí setterm(1), pro X pak v /etc/X11/XF86Con­fig nebo příkazem xset dpms. Někdy nastavení přebírá do své kompetence šetřič obrazovky. DPMS je zcela nezávislý na APM (ovšem stav odložení grafickou kartu zastavuje).

Pokud odcházíte na oběd, zatímco počítač kompiluje, můžete zadat např.:

xset dpms force off

Některé starší monitory se uměly vypnout, ale ještě nepodporovaly DPMS. U nich je vhodné prodlevy všech DPMS hodnot nastavit stejně, jinak se monitor při přechodu mezi stavy na několik sekund zapíná.

Podle ekologických zákonů některých států by měly všechny počítače a operační systémy přicházet na trh se zapnutými úspornými funkcemi, a tak se můžeme časem dočkat situace, kdy všechny tyto funkce budou standardně aktivovány a my nebudeme muset trávit čas jejich zprovozňováním.

Více o možnostech úsporného provozu se dozvíte v Ecology-HOWTO nebo česky ve stejnojmenném článku na

root_podpora

Penguinu.

Protože téma regulace větráků a ztišení počítače zaujalo mnoho čtenářů, rozhodl jsem se doplnit seriál o praktické poznatky z různých úprav, které jsem v prvním dílu jen nakousnul.

Byl pro vás článek přínosný?