Údržba a optimalizace systému Linux

článek převzat od uživatele MartenP z Forum Ubuntu

Tento návod si dává za cíl poukázat na možnou cestu uživatelovu, kterou by se mohl ubírat při optimalizaci svého systému pro lepší výkon, přehlednost a pocit vítězství nad bordelem.

Upozornění: Naprosto se vzdávám jakékoliv odpovědnosti za potíže vzniklé používáním tohoto návodu. Vše děláte na vlastní nebezpečí!

Dodatek k poznámce: Vše mám samozřejmě prozkoušené, ale to že mi to funguje, není záruka všeobecné bezchybnosti. Na všechny nejasnosti se raději ptejte.


Vyladění bootu aneb Využíváme výhod dvoujádra

Teoretické zrychlení se pohybuje kolem 4s, což jsem si ověřil ve dvou systémech (Debian Sid a Xubuntu 9.04) na vlastní kůži.

Zrychlení spočívá ve využití vícejádrových procesorů ke spuštění paralelních startovacích skriptů, čímž je efektivněji využit výpočetní potenciál.

Úprava je velmi jednoduchá – editací souboru /etc/init.d/rc. Pro úpravu budete potřebovat práva roota.
Kód:

sudo nano  /etc/init.d/rc

Řádek concurrency=none změňte na concurrency=shell, čímž je celá věc hotová. Pro vyzkoušení restartujte.

Tento tip funguje dobře pouze na vícejádrových procesorech a procesorech podporující Hyper-Threading, nedoporučuji ho zkoušet na obyčejných jednojádrech. Systém by nemusel nabootovat.

Je možné, že na novějších distribucích bude tato volba zapnuta defaultně.


Plánujeme kontrolu souborových systémů

Čas od času je třeba provést kontrolu souborového systému nástrojem fsck. Ukažme si, jak takovou kontrolu naplánovat na příští bootování systému.

Při provádění údržby systému je žádoucí občas provést i kontrolu souborového systému. Ve většině distribucí se tato činnost provádí jednou za čas automaticky. Může ale nastat situace, kdy potřebujeme kontrolu provést neprodleně. My si ukážeme, jak zařídíme, aby nástroj fsck provedl zkontrolování souborového systému při příštím bootování.

Stačí v kořenovém adresáři / vytvořit soubor s názvem forcefsck. To provedeme například příkazem
Kód:

sudo touch /forcefsck

Při dalším bootování proběhne kontrola všech diskových oddílů a námi vytvořený soubor se automaticky smaže.

Preload aneb Startujeme aplikace rychleji

Utilitka preload pracuje jako na pozadí běžící daemon a zaznamenává naše statisticky nejpoužívanější aplikace. Pro tyto aplikace pak nechává v paměti RAM načtené potřebné knihovny, což přináší výrazně rychlejší start těchto aplikací.

Užití je až tragicky primitivní. Utilitku nainstalujeme klasicky příkazem
Kód:

sudo aptitude install preload

Dále už utilitka pracuje plně automaticky a není potřeba dalších zásahů uživatele. Samotná aplikace pak zabere v paměti okolo 1MB a pro její fungování není potřeba žádných speciálních knihoven. Knihovny jsou načítány do paměti, jež je ovšem označená jako volná, a tak může být kdykoliv využita jiným hladovým procesem.

Dash aneb Provádíme skripty rychleji

DASH (Debian Almquist Shell) je nenáročný POSIX-kompatibilní shell odvozený od ash.

Program je možno snadno využívat jako /bin/sh (protože vykonává skripty rychleji než bash), nebo jako výchozí shell superuživatele. Závisí na menším počtu knihoven než bash a z tohoto důvodu je také méně náchylnější na problémy související s aktualizací systému nebo selhání disku.

Instalujeme příkazem
Kód:

sudo aptitude install dash

Za výchozí shell nastavíme příkazem
Kód:

sudo dpkg-reconfigure dash

V novějších verzích distribucí je již DASH používán defaultně.

Balík localepurge aneb Mažeme zbytečné locales

Utilitkou localepurge smažeme všechny nepoužívané lokalizace a zbytečné lokalizované manuály.

Nejdříve je dobré provést kontrolu locales, jež jsou nastaveny a používány v našem systému. Provedeme ji příkazem
Kód:

sudo dpkg-reconfigure locales

Poté nainstalujeme utilitku localepurge a při její instalaci zaškrtneme žádané locales, které jsme si zjistili předchozím příkazem (doporučuji všechny domovské jazyky a angličtiny).
Kód:

sudo apt-get install localepurge

Čistku locales provedeme jednoduchým příkazem
Kód:

sudo localepurge

Osobně tuto utilitku používám a po prvním spuštění mi uvolnila asi 150MB zbytečných lokalizačních souborů. Tato malá aplikace se nadále spouští automaticky při každé instalaci jakéhokoliv balíku, takže se systém opětovně nezanese zbytečnými soubory.

Debfoster aneb Pryč se zbytečnými balíky a knihovnami

Onehdá jsem narazil na opravdu extrémně užitečný balíček debfoster, jenž nám výrazně zjednoduší a zpříjemní údržbu celého systému a zavede pořádek v našich nainstalovaných balících.

Program vytvoří seznam „hlavních“ (osamocených, bez dalších závislostí) balíků, jež ve svých závislostech obsahují veškeré nainstalované dílčí balíky. Uživatel z vygenerovaného seznamu (po důkladném prověření!) odstraní nepotřebné a zbytečné balíky a program pak vymaže tyto balíky i s jejich závislostmi.

Nainstalujeme balík debfoster (Synaptic, sudo aptitude install debfoster,…) a příkazem
Kód:

sudo debfoster -q

vygenerujeme seznam osamocených balíků.

Ten pak editujeme příkazem
Kód:

sudo nano /var/lib/debfoster/keepers

a vymažeme zbytečné a nepoužívané balíky (nikdy nemažeme grub a součásti jádra!).

Poté několikrát za sebou pustíme čistící příkaz (z důvodu nerekurzivní politiky mazání)
Kód:

sudo debfoster -f

O dalších možnostech této aplikace se dozvíme v jejích manuálových stránkách.

Tento tip je pouze pro zodpovědné a zkušenější uživatele mající schopnost rozeznat důležitost a potřebnost balíků. Ze seznamu mažeme pouze balíky, o nichž jsme si jistí, že jsou zbytečné.

Tímto způsobem vytvoříme a udržíme naprosto čistý systém bez zbytečných a zbytkových balíků a knihoven. Je vysoce doporučeno (s lehkým varováním) tento tip vyzkoušet.

Utilitka lc aneb Uklízíme pečlivěji

Při svých toulkách po internetu jsem narazil na užitečnou utilitku od Davida Watzkeho, jež dovede udělat pořádek v symlincích.

Simlink Checker zkontroluje simlinky a spolehlivě smaže ty, které vedou na neplatné umístění.

Jak na to?

Stáhneme si tar.bz2 archiv z oficiálních stránek http://www.watzke.cz/cs/cc . Rozbalíme a z rozbalené složky spustíme terminál. Nainstalujeme klasickými příkazy
Kód:

make
sudo make install

Pokud narazíte na problémy při překládání v gcc4.3 a vyšším, do souboru main.cc přidejte řádek
Kód:

#include <cstdio>

a zkuste přeložit znovu.

Pak už jen provedeme kontrolu simlinků příkazy
Kód:

lc -rd /
sudo lc -rd /

Jako alternativu uvedu následující příkazy. Výhodou se zdá býti absence nutnosti provádět postup uvedený výše.
Kód:

find -P / -xtype l
find -P / -xtype l -delete

Bleachbit aneb Vysavač na systémové smetí

Při mých toulkách na internetu jsem narazil na jeden velmi zajímavý softík. O co jde?

Bleachbit je čistící prográmek, jenž umí odstranit velkou část dočasného či nepoužívaného balastu v systému.

Rozhraní je naprosto triviální. Po maličké konfiguraci po prvním spuštění již pouze zaškrtáme objekty k čištění, stiskneme tlačítko Náhled pro zobrazení souborů označených k výmazu, poté již jen klikneme Smazat a dáme bordýlku pápá.

Ke konfiguraci si dovolím jednu poznámku k sekci Jazyky. Vhodné je zaškrtnout k ponechání kromě češtiny i angličtinu. Některé do češtiny nelokalizované aplikace by po odstranění angličtiny mohly postrádat použitelný alternativní překlad. Odstranění zbytečných překladů aplikací může uvolnit slušné místečko na disku.

Bleachbit disponuje dvěma nezávislými módy – uživatelským a administrátorským. Rozdíl je v tom, jaká část systému a s jakými právy je pročišťována.

Nutno podotknout, že i přes mé počáteční obavy funguje Bleachbit spolehlivě, ale i přesto je alespoň elementární opatrnost na místě. Při prvním čištění mi oba módy společně uvolnili na 12pt0MB. Systém je bleskově rychlý, křišťálově čistý a neotřesitelně stabilní.

Doporučuji stáhnout balík z oficiálních stránek http://bleachbit.sourceforge.net/ . Balík v repositářích má totiž nesmyslně moc závislostí a instaluje velkou spoustu zbytečností.

Finální úklid aneb Prelinkujeme a defragmentujeme

Protože jsem od přírody čistotný tvor, udržuji pořádek i na disku. Notebook používám jako pracovní nástroj a vyžaduji od něj absolutní stabilitu a spolehlivost. Na disku mám totiž pro mě cenná data. Neustále mi v hlavě duní zvon varující mě před nepořádkem v systému. Je to i jeden z důvodů mého odchodu od Windows. Ale to už je na jiné povídání.

Prelink

Balík prelink modifikuje knihovny funkcí a binární soubory ELF tak, aby se rychleji nahrávaly. Výsledkem je méně relokací při startu programu. Tím přispívá k jeho rychlejšímu startu. Pomalé nahrávání knihoven je jednou z nejčastějších příčin pomalého startu aplikací. Tento balík naleznete v repositáři Ubuntu. (citace z wiki.ubuntu.cz)

Instalujeme příkazem
Kód:

sudo aptitude install prelink

Používáme příkazem
Kód:

sudo prelink -avmR

pyFragTools

Toto je balík pro defragmentaci souborového systému. Dle oficiálních informací souborový systém EXTx má míru fragmentace souborů značně omezenou. Mé zkušenosti ale potvrzují, že pravidelná defragmentace tohoto souborového systému napomáhá znatelně rychlejšímu startu aplikací.

Archiv si můžete stáhnout na http://ubuntuforums.org/showthread.php?t=169551 .

Překládáme příkazem
Kód:

sudo make install

spuštěného z adresáře z rozbaleného archivu.

Používáme příkazem
Kód:

sudo defrag -n počet_cyklů lokace_k_defragmetaci

Tato aplikace je nejlepší ze všech defragmentačních utilit pro GNU/Linux. Jak už to tak bývá, je zde jedno ALE. Ve verzi Pythonu 2.5 vše funguje bez problému, Python 2.6 ale přináší jeden problém špatné interpretace v kódu programu, a tak program nefunguje. Na zmiňovaných stránkách je vodítko na opravu a pár uživatelů si toto vodítko chválí, mně toto vodítko také pomohlo. Pokud byste se funkčnosti nedočkali, doporučuji některou z alternativ.

fiDefrag

Tento program také není špatný, ale nedosahoval jsem s ním takových výsledků jako s pyfragtools.

Nejnovější verzi jsem stahoval přes bzr.
Kód:

sudo aptitude install bzr
bzr branch lp:fidefrag

Z nově vzniklého adresáře na /home spustíme příkaz tvaru
Kód:

sudo python fiDefrag.py -h | -a <dir> | -d <dir> [-p <passes>]

a defragmentujeme.

Konečný stav je ovšem horší než s aplikací pyfragtools. Defragmentace trvá poměrně dlouho a i tak nejsou defragmentovány úplně všechny soubory.

Shake

Z hlubin internetových vod se vynořila aplikace s názvem Shake.

Jednoduché domovské stránky http://vleu.net/shake/ jsou přehledně zpracovány a jsou zde popsány základní charakteristiky programu a jednoduchý návod na použití. Aplikace funguje spolehlivě a dobře.

Shake pracuje tak, že soubor ucelí, co se týče umístění na disku, a pak všechny soubory nalepí hned za sebe. Hlavičky tedy nemusí při čtení rejdit po celém disku a zkrátí se tak přístupová doba k souboru a výkon celého systému vzroste. Celá operace trvá několik minutek v závislosti na stavu souborového systému. Ve srovnání s PyFragTools je doba operování o poznání kratší a výsledek o poznání horší.

Existuje repositář pro Ubuntu, který ovšem stejně dobře funguje i pro Debian.
Kód:

deb http://ppa.launchpad.net/un-brice/ppa/ubuntu intrepid main
sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xe6e72ba35a344e8a8159196b59a333d4e2235dbb

Prográmek používejte v případě, že se vám neosvědčila první či druhá možnost.

Pro správné fungování je vyžadován mountovací parametr user_xattr v /etc/fstab pro všechny cílové jednotky.

Závěr

Všechny připomínky, dotazy, hlášení chyb či žádosti se budu snažit vyslyšet. Taktéž budu velice vděčen za vaše osobní zkušenosti s touto problematikou.

Doufám, že tento návod způsobí masivní pokrok v oblasti hygieny operačního systému, neboť to je základ k úspěšné a pohodlné práci na počítači.

Děkuji, že jste strávili váš čas čtením tohoto mého chorobného výlevu!

 

Publikováno v Návody,Software a označené ,,,.