Internet Info, s.r.o. Lupa Měšec Podnikatel Root Zdroják DigiZone Slunečnice Vitalia TopDrive KupDnes Navrcholu NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Hlavní navigace

Jak na uspávání disku v Linuxu?

Velké množství uživatelů používá ke své práci notebooky, a tak by chtěli, aby měly jejich počítače co nejdelší výdrž na jedno nabití baterií. Tomu pomůže i rozumné zastavování nepoužívaného disku. Velmi často se však disky zase samy po několika sekundách roztáčejí. Čím je to způsobeno? Jak skutečně uspat?

Tweetni to Twitter Jaggni to! Jagg Del.icio.us Delicious

Nedávno se mi ozval jeden známý, který měl problémy se svým linuxovým notebookem. Nastavil si uspávání disku, aby ušetřil nějakou tu minutu drahocenné energie, ale disk ne a ne usnout. Tedy on se sice zastavil, ale po několika málo sekundách jej zase nějaká systémová aktivita probrala a on se roztočil.

Protože můj kolega není jediný, kdo něco podobného řeší a na mnoha diskusních fórech se to podobnými otázkami jen hemží, rozhodl jsem se sepsat článek, který vše podstatné okolo disků vysvětlí a především uživatelům poradí, jak vyřešit běžné problémy.

Existuje řada skriptů a balíků, které řeší některé zde zmiňované problémy za uživatele. My ovšem půjdeme do hloubky a vysvětlíme si, jak to uvnitř chodí a co můžeme zvládnout ručně. Víc informací přece nikdy neuškodí a budete schopni vyřešit problémy, které třeba skripty nezvládly.

Uspávání disku

Disky patří v noteboocích mezi podstatné konzumenty elektrické energie. Samozřejmě nejsou samy a při vysávání baterky spolupracují například s displejem, procesorem a pamětí. Na rozdíl od ostatních zmiňovaných periferií se ovšem s diskem dá alespoň něco dělat.

Velmi často totiž během delší práce disk vlastně vůbec nepotřebujete. Když sedíte ve vlaku a píšete článek v oblíbeném textovém editoru nebo upravujete fotografie a hrajete si s každou deset minut, pak se pravděpodobně bude váš disk nudit, přestože se stále točí a konzumuje energii.

Ideální by tedy bylo disk po nějaké době, kdy není potřeba, automaticky vypnout. Někteří uživatelé se uspávání disku bojí, protože ví, že snižuje jeho životnost. To je samozřejmě pravda, konkrétní čísla vás ale snad uklidní.

Běžný stolní disk vydrží „papírově“ asi 40 000 roztočení. Pokud bychom jej tedy zastavovali a roztáčeli každých 10 minut, nevydržel by nám ani rok. Proti tomu u disků určených pro notebooky se předpokládá, že budou častěji roztáčeny. U takového disku tedy výrobce obvykle garantuje 300 000 roztočení. To při stejné desetiminutovce dělá asi šest let života. Tedy za předpokladu, že byste takto notebook provozovali 365 dní v roce. Nemusíte se tedy nějaké újmy bát.

Pro konfiguraci uspávání pevného disku můžeme použít systémový příkaz hdparm. Stačí jej zavolat s parametrem -S a údajem o čase. Ten je vyjádřen číslem 0 – 255. Ten vyjadřuje časové úseky a je odstupňován v několika úrovních:

Časy pro hdparm
číslo časový údaj na jednotku
0 vůbec nezastavuj
1 až 240 jednotka je 5 sekund
241 až 251 jednotka je 30 minut
252 21 minut
253 dle výrobce 8 až 12 hodin
254 rezervovaný údaj
255 21 minut a 15 sekund

Příklad: 120 je deset minut (120 * 5 sekund), 244 jsou dvě hodiny

Můžeme tedy rovnou zavolat:

$ hdparm -S 6 /dev/hda

To způsobí, že pokud se na disk nebude 30 sekund „sahat“, automaticky se zastaví. Při jakékoliv další aktivitě se automaticky rozeběhne a začne odpovídat. A tak stále dokola.

Bohužel to nebude tak jednoduché a většinou se vám disk hned po několika málo sekundách zase roztočí. Za normálních okolností totiž systém k disku přistupuje dle potřeby – tedy velmi často.

Omezujeme použití disku

Existuje samozřejmě několik různých metod, které můžeme použít, abychom co nejvíce omezili počet interakcí s diskem. Ty nejdůležitější si nyní postupně popíšeme.

Laptop mód

Za normálních okolností zapisuje jádro na disk po malých dávkách a rozkládá tak zátěž do delších časových úseků. To ale samozřejmě brání zastavování disků, protože ty jsou stále potřeba.

V případě, že aktivujeme takzvaný Laptop mode, začne systém automaticky pracovat tak, že se bude snažit co nejvíce věcí vyřídit v krátkých časových úsecích a po zbytek práce nechat disk na pokoji.

Konkrétně to znamená, že se při práci s diskem snaží systém natahat co nejvíce dat předem do paměti, vysypat veškeré cache na disk a podobně. Zároveň se například prodlouží veškeré periody pro odkládání stránek na disk.

Změní se i nastavení správy paměti. Pokud systému začne docházet paměť, obvykle začne vyprazdňovat cache a zbavuje se některých stránek z paměti. V Laptop módu jsou ale při zahazování upřednostňovány ty stránky, které nevyžadují zápis na disk a je možné je smazat rovnou, třeba proto, že už na disku jsou.

Tento režim si některé distribuce aktivují automaticky a je možné jej zapnout v konfiguračních souborech. Pokud ovšem váš systém ničím podobným nedisponuje nebo si přejete zapnout režim ručně, stačí zapsat jedničku do souboru v adresáři  /proc:

$ echo "1" > /proc/sys/vm/laptop_mode

Pro vypnutí režimu stačí do stejného souboru zapsat nulu.

Omezení souborového systému

Kromě uživatele a různých aplikací generuje komunikaci s diskem i samotný souborový systém. I když jen čteme soubory z cache, jádro na disk zapisuje časové značky informující o posledním přístupu k souborům.

Tuto vlastnost ale můžeme snadno vypnout a zabránit tak velké části zápisů. Budeme k tomu potřebovat parametr noatime, který přidáme do souboru /etc/fstab.

Další možností je nastavení synchronizací write cache s fyzickým diskem. Pokud totiž něco zapisujeme na disk, obvykle se informace zapíší jen do paměti a na disk se dostávají, „až je čas“. Existuje ale konstatní časový úsek, po kterém se data zapíší vždy. Dojde tedy k vylití cache na disk.

Tento čas je standardně nastaven na pět sekund, ovšem v případě notebooku je to obvykle příliš krátký čas. Náš počítač je napájen baterií, takže nás neohrozí výpadek elektrické energie a můžeme si tak dovolit tento čas prodloužit. K tomu slouží další mount parametr, tentokrát commit, který je následován údajem o počtu sekund pro sync. Výsledný řádek v /etc/fstab by tedy mohl vypadat takto:

/dev/hda1   /   ext3    noatime,commit=300 0 1

Tím způsobíme, že se nebudou zapisovat časové značky a write cache se automaticky vyprázdní až po pěti minutách. Čase je možno samozřejmě zkrátit dle vašich požadavků. V každém případě je i během této periody možno důležitá data na disk dostat. Stačí k tomu použít příkaz

$ sync

Logovači systémových událostí

Pokud provedeme výše uvedená opatření, náš notebook nemusí disky roztáčet třeba i deset minut. Pokud nebudeme vůbec zapisovat, může nám vypnutý disk vydržet i mnohem déle.

Tedy za předpokladu, že nespustíme už zmíněný příkaz sync nebo jej některá aplikace nespustí za nás. To je případ například démona syslogd. V jeho zájmu totiž je, abyste v logu měli doopravdy všechny důležité informace. Po každém zápisu tedy sám způsobí synchronizaci, abyste i po pádu systému měli informace o tom, co se stalo.

Toto chování se samozřejmě nehodí pro notebooky a tak by bylo záhodno jej změnit. Samozřejmě se můžeme démona zbavit, ale to bychom přišli o mnoho důležitých informací. Rozumnější je, ho přesvědčit, aby „nesyncoval“.

Konfigurační soubor tohoto démona se nachází v souboru /etc/syslog.conf. V něm jsou uloženy informace o tom, co a kam se bude zaznamenávat. V souboru budou tedy řádky jako

user.*  /var/log/user.log

To znamená, že se všechny systémové hlášky týkající se uživatelů budou automaticky zapisovat do uvedeného souboru a automaticky dojde k synchronizaci disků. Pokud jí chceme zabránit, stačí jednoduše před cestu k souboru připsat pomlčku.

user.*  -/var/log/user.log

Po restartu démona už se nebude sync provádět. Doporučuji ovšem zvážit, ke kterým souborům pomlčku připíšete, kritické informace by bylo dobré mít určitě na disku pro odhalování systémových problémů.

Další nezbedové

Může se stát, že i přes všechna tato opatření se některý nezbedný proces bude stále domáhat přístupu k disku a stále jej roztáčet. Existuje jednoduchý způsob, jak takového „viníka“ odhalit. Systém totiž dokáže informovat o tom, kdo a jak přistupuje k diskům.

Nejprve je potřeba, abyste zastavili logovacího démona syslogd. Ten by totiž mohl způsobit zacyklení, protože by se všechny informace o zápisech na disk snažil zapsat na disk a tím by způsobil další zápisy…

$ /etc/init.d/sysklogd stop

Poté v jádře aktivujeme zápis informací o tom, kdo se to snaží pracovat s diskem.

echo "1" > /proc/sys/vm/block_dump

Výstup získáme s pomocí příkazu dmesg. Jednotlivé řádky mohou vypadat například takto:

kdeinit(7512): WRITE block 32541 on hda1

To znamená, že proces kdeinit s uvedeným PID zapsal blok dat na disk hda1. Pokud nebude proces nijak agresivní, měl by jen pozměnit stránku v cache, což se projeví hláškou:

bash(3556): dirtied inode 26545 (.bash_history) on hda1

Znamená to, že byl pozměněn (doslova zašpiněn) soubor .bash_history, ale nedošlo k jeho zápisu. Pokud budete mít hlášek v systému příliš mnoho, můžete filtrovat jen slovíčko „WRITE“.

Závěrem

Doufám, že vám tyto informace pomohou udržet váš notebook déle v kondici. Správně nastavené uspávání disku může prodloužit běh vašeho notebooku na jedno nabití až o několik desítek minut. Kromě toho, že déle vydrží, nabídne vám také nižší teplotu a méně hluku.

Samozřejmě se vám uspávání nemusí hodit jen k notebooku, ale i například váš domácí server bude rád, když bude moci na chvíli disky zastavit, ušetřit vám část účtu za elektřinu a předvést vám, jak umí být tichý.

Anketa

Používáte notebook?

       

Petr Krčmář

Petr Krčmář

Petr Krčmář pracuje jako šéfredaktor serveru Root.cz. Vystudoval elektroniku se zaměřením na počítačové systémy, nyní se zabývá médii, především těmi elektronickými.

Školení: Linux – Firemní server

Na třídenním školení se naučíte nainstalovat a spravovat kompletní linuxový server do Vaší firmy se všemi základními službami, které potřebujete pro provoz Vaší sítě, firemních emailů a webových stránek.

Podrobnější informace a přihláška

Ohodnoťte jako ve škole:
Průměrná známka 2,71

Přehled názorů

super clanek
polymorpheus 3. 9. 2007 00:38
Nový
└ 
Re: super clanek
petris 3. 9. 2007 00:43
Nový
 
└ 
Re: super clanek
polymorpheus 3. 9. 2007 00:49
Nový
 
 
└ 
Re: super clanek
petris 3. 9. 2007 00:56
Nový
 
 
 
└ 
Re: super clanek
Jazz 3. 9. 2007 07:02
Nový
 
 
 
 
└ 
Re: super clanekRe: super clanek
Ondrej Skutka 3. 9. 2007 12:28
Nový
 
 
 
 
 
└ 
Re: super clanekRe: super clanekRe: super clanekRe: super clanek
Ondrej Skutka 4. 9. 2007 09:04
Nový
 
 
 
 
 
 
└ 
a nedela to SMART?
Fik 4. 9. 2007 11:03
Nový
 
 
 
 
 
 
 
└ 
Re: a nedela to SMART?
Ondrej Skutka 4. 9. 2007 14:15
Nový
 
 
 
 
 
 
 
 
└ 
Re: a nedela to SMART?
Ondrej Skutka 7. 9. 2007 09:09
Nový
 
 
 
 
 
 
 
 
 
└ 
Re: a nedela to SMART?
BlackSUN 30. 10. 2007 11:11
Nový
Po dlouhe dobe uzitecny clanek
Harvie 3. 9. 2007 02:49
Nový
└ 
Re: Po dlouhe dobe uzitecny clanek
pht 3. 9. 2007 09:27
Nový
 
└ 
Re: Po dlouhe dobe uzitecny clanek
Stanislav Brabec 3. 9. 2007 12:00
Nový
 
 
└ 
Re: Po dlouhe dobe uzitecny clanek
Ondrej \'SanTiago\' Zajicek 5. 9. 2007 09:48
Nový
flash disk
xxx 3. 9. 2007 06:13
Nový
├ 
Re: flash disk
Stanislav Brabec 3. 9. 2007 11:59
Nový
│
└ 
Re: flash disk
Richard Bukovansky 3. 9. 2007 22:25
Nový
│
 
└ 
Re: flash disk
anonymní uživatel 3. 9. 2007 23:03
Nový
└ 
Re: flash disk
Pavel Tišnovský 3. 9. 2007 13:30
Nový
abclinuxu
Jazz 3. 9. 2007 06:56
Nový
uspavani sata2 disku na serveru...
chaky 3. 9. 2007 07:38
Nový
└ 
Re: uspavani sata2 disku na serveru...
Ivan 3. 9. 2007 11:44
Nový
 
└ 
Re: uspavani sata2 disku na serveru...
astray 5. 9. 2007 19:17
Nový
 
 
└ 
Re: uspavani sata2 disku na serveru...
astray 6. 9. 2007 13:51
Nový
poškodenie disku
mayo 3. 9. 2007 08:43
Nový
└ 
Re: poškodenie disku
Zdenek 3. 9. 2007 08:55
Nový
 
├ 
Re: poškodenie disku
mayo 3. 9. 2007 09:23
Nový
 
│
└ 
Re: poškodenie disku
JeromeHeretic 3. 9. 2007 16:18
Nový
 
└ 
Re: poškodenie disku
pht 3. 9. 2007 09:29
Nový
 
 
└ 
Re: poškodenie disku
remet 3. 9. 2007 11:48
Nový
 
 
 
└ 
Re: poškodenie disku
mayo 3. 9. 2007 13:23
Nový
Pěkné
dum8d0g 3. 9. 2007 09:05
Nový
swap?
dum8d0g 3. 9. 2007 09:09
Nový
└ 
Re: swap?
Petr Krčmář 3. 9. 2007 09:34
Nový
 
└ 
swap? klidne vypnout
Hynek "rADOn" Fabian 3. 9. 2007 10:59
Nový
 
 
└ 
Re: swap? klidne vypnout
neldor 3. 9. 2007 22:23
Nový
 
 
 
└ 
Re: swap? klidne vypnout
Ondrej 'SanTiago' Zajicek 5. 9. 2007 09:55
Nový
prinos?
karel 3. 9. 2007 10:06
Nový
├ 
Re: prinos?
Petr Krčmář 3. 9. 2007 10:54
Nový
│
└ 
Re: prinos?
apu 4. 9. 2007 20:40
Nový
└ 
Re: prinos?
JeromeHeretic 3. 9. 2007 16:26
Nový
Dik :)
majkro . 3. 9. 2007 10:15
Nový
copy2ram?
jenicek 3. 9. 2007 10:58
Nový
├ 
Re: copy2ram?
Pavel Tišnovský 3. 9. 2007 13:36
Nový
│
├ 
Re: LAPTOP a ne notebook you dumbass !
anonymní uživatel 3. 9. 2007 16:04
Nový
│
│
├ 
Re: LAPTOP a ne notebook you dumbass !
Pavel Tišnovský 3. 9. 2007 16:14
Nový
│
│
└ 
Re: LAPTOP a ne notebook you dumbass !
anonymní uživatel 9. 9. 2007 11:39
Nový
│
├ 
Re: copy2ram?
anonymní uživatel 3. 9. 2007 16:11
Nový
│
└ 
Re: copy2ram?
bleskone 3. 9. 2007 20:53
Nový
│
 
└ 
Re: copy2ram?
disorder 3. 9. 2007 21:40
Nový
│
 
 
└ 
Re: copy2ram?
bleskone 4. 9. 2007 07:37
Nový
│
 
 
 
└ 
spotreba USB
Fik 4. 9. 2007 11:14
Nový
└ 
Re: copy2ram?
Kvakor 3. 9. 2007 16:56
Nový
 
└ 
Re: copy2ram?
Pavel Mlady 3. 9. 2007 17:39
Nový
 
 
├ 
Re: copy2ram?
Petr Krčmář 3. 9. 2007 21:25
Nový
 
 
└ 
Re: copy2ram?
Sancho 5. 9. 2007 00:24
Nový
jedno reseni
Yokotashi 3. 9. 2007 19:50
Nový
└ 
Re: jedno reseni
Jimmy 4. 9. 2007 07:05
Nový
 
├ 
Re: jedno reseni
Fik 4. 9. 2007 11:18
Nový
 
│
└ 
Re: jedno reseni
Jimmy 4. 9. 2007 13:37
Nový
 
└ 
Re: jedno reseni
Ondrej \'SanTiago\' Zajicek 5. 9. 2007 09:58
Nový
 
 
└ 
Re: jedno reseni
Ondrej 'SanTiago' Zajicek 5. 9. 2007 10:25
Nový
 
 
 
├ 
Re: jedno reseni
Fik 5. 9. 2007 11:30
Nový
 
 
 
└ 
Re: jedno reseni
Jimmy 5. 9. 2007 15:36
Nový
 
 
 
 
└ 
Re: jedno reseni
Ondrej 'SanTiago' Zajicek 7. 9. 2007 10:53
Nový
 
 
 
 
 
└ 
Re: jedno reseni
Jimmy 8. 9. 2007 02:40
Nový
prohlížeče
Tom 4. 9. 2007 10:08
Nový
└ 
Re: prohlížeče
RID 5. 9. 2007 15:50
Nový
 
└ 
Re: prohlížeče
JeromeHeretic 5. 9. 2007 21:59
Nový
 
 
└ 
Re: prohlížeče
RID 6. 9. 2007 13:32
Nový
 
 
 
└ 
Re: prohlížeče
JeromeHeretic 6. 9. 2007 16:42
Nový
2.5" disk Seagate neusina
fik 4. 9. 2007 20:56
Nový
Nacitanie videa do RAM
pogo 4. 9. 2007 22:30
Nový
├ 
Re: Nacitanie videa do RAM
fik 5. 9. 2007 08:23
Nový
└ 
Re: Nacitanie videa do RAM
Fik 5. 9. 2007 10:34
Nový
 
├ 
Re: Nacitanie videa do RAM
Ondrej Skutka 7. 9. 2007 09:19
Nový
 
│
└ 
Re: Nacitanie videa do RAM
Erbureth 5. 2. 2008 18:30
Nový
 
└ 
Re: Nacitanie videa do RAM
Partizannka 6. 10. 2010 12:21
Nový
děkuji
Opium 7. 9. 2007 07:38
Nový
automaticke uspavani pouze na baterii
anonymní uživatel 8. 9. 2007 23:57
Nový
       

Tento text je již více než dva měsíce starý. Chcete-li na něj reagovat v diskusi, pravděpodobně vám již nikdo neodpoví. Pro řešení aktuálních problémů doporučujeme využít naše diskusní fórum.

Zasílat nově přidané příspěvky e-mailem