Autor Téma: Údržba a optimalizace systému  (Přečteno 21931 krát)

MartenP

  • Host
Údržba a optimalizace systému
« kdy: 18. 11. 2009, 10:19:42 »
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) 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: [Vybrat]
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.



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. 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: [Vybrat]
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: [Vybrat]
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: [Vybrat]
sudo aptitude install dash
Za výchozí shell nastavíme příkazem

Kód: [Vybrat]
sudo dpkg-reconfigure dash

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: [Vybrat]
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: [Vybrat]
sudo apt-get install localepurge
Čistku locales provedeme jednoduchým příkazem

Kód: [Vybrat]
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: [Vybrat]
sudo debfoster -q
vygenerujeme seznam osamocených balíků.

Ten pak editujeme příkazem

Kód: [Vybrat]
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: [Vybrat]
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: [Vybrat]
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: [Vybrat]
#include <cstdio> a zkuste přeložit znovu.

Pak už jen provedeme kontrolu simlinků příkazy

Kód: [Vybrat]
lc -rd /
sudo lc -rd /


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 120MB. 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: [Vybrat]
sudo aptitude install prelink
Používáme příkazem
Kód: [Vybrat]
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: [Vybrat]
sudo make installspuštěného z adresáře z rozbaleného archivu.

Používáme příkazem
Kód: [Vybrat]
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ě se ale neosvědčilo a program nefungoval. V tomto případě doporučuji některou z alternat.


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: [Vybrat]
sudo aptitude install bzr
bzr branch lp:fidefrag

Z nově vzniklého adresáře na /home spustíme příkaz tvaru
Kód: [Vybrat]
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: [Vybrat]
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!
« Poslední změna: 29. 12. 2009, 17:02:13 od Márten »

Offline Yontalcar

  • Uživatel
  • ***
  • Příspěvků: 131
  • Semper fidelis
    • Zobrazit profil
  • Jabber: yontalcar@jabber.cz
Re: Údržba a optimalizace systému
« Odpověď #1 kdy: 18. 11. 2009, 12:16:04 »
ad lc
zbytečné, stačí GNU find
Kód: [Vybrat]
find -P ~ -xtype l
find -P ~ -xtype l -delete
NB: ASUS X53U; Debian GNU/Linux Sid amd64 (KDE4)

Jen dvě věci jsou nekonečné - vesmír a lidská hloupost. Tím prvním si ovšem nejsem tak jist. - Albert Einstein

MartenP

  • Host
Re: Údržba a optimalizace systému
« Odpověď #2 kdy: 18. 11. 2009, 16:22:28 »
Docela se bojím to pustit na /. U lc mám aspoň vyzkoušené, že nesmaže nic, co by nemělo. Věřím Davidovi, že ten jeho prográmek programoval z dobrého důvodu :)

EDIT: Funguje to spolehlivě. Díky!
« Poslední změna: 29. 12. 2009, 17:04:44 od Márten »

Offline Visterius

  • Začátečník
  • **
  • Příspěvků: 73
  • Born to Confuse and Fail
    • Zobrazit profil
Re: Údržba a optimalizace systému
« Odpověď #3 kdy: 18. 11. 2009, 16:51:17 »
Díky moc, fakt pěkný návod - obzvlášť "concurrency=shell" je užitečné.

Memento Mori

Debian Sid, E17..

„Internet je to modré e na ploše, po jehož spuštění se zobrazí Seznam internetu.“

Offline Yontalcar

  • Uživatel
  • ***
  • Příspěvků: 131
  • Semper fidelis
    • Zobrazit profil
  • Jabber: yontalcar@jabber.cz
Re: Údržba a optimalizace systému
« Odpověď #4 kdy: 18. 11. 2009, 19:35:29 »
Docela se bojím to pustit na /. U lc mám aspoň vyzkoušené, že nesmaže nic, co by nemělo. Věřím Davidovi, že ten jeho prográmek programoval z dobrého důvodu :)
Tady máš ten dobrý důvod:
Citace: http://www.watzke.cz/cs/cc
Učím se C/C++, a tak píšu různý jednoduchý prográmky.
Tak schválně zkus porovnat výstupy obou programů, tj. lc bez -d a find bez -delete

ad concurrency:
Citace: /etc/init.d/rc
# Valid options are 'none', 'startpar' and 'makefile'.
btw. jelikož /etc/init.d/rc includuje /etc/default/rcS, přijde mi přehlednější napsat to tam
« Poslední změna: 18. 11. 2009, 23:16:14 od Yontalcar »
NB: ASUS X53U; Debian GNU/Linux Sid amd64 (KDE4)

Jen dvě věci jsou nekonečné - vesmír a lidská hloupost. Tím prvním si ovšem nejsem tak jist. - Albert Einstein

Offline Erich Stark

  • Aktivní­ uživatel
  • ****
  • Příspěvků: 546
    • Zobrazit profil
Re: Údržba a optimalizace systému
« Odpověď #5 kdy: 18. 11. 2009, 22:25:08 »
Vyzera to na vyborny navod, este dnes vyskusam minimalne tu vecicku s X2 procesorom :)
" The box said that I needed to have Windows XP or better ... so I installed Debian ."

MartenP

  • Host
Re: Údržba a optimalizace systému
« Odpověď #6 kdy: 19. 11. 2009, 09:21:54 »
Docela se bojím to pustit na /. U lc mám aspoň vyzkoušené, že nesmaže nic, co by nemělo. Věřím Davidovi, že ten jeho prográmek programoval z dobrého důvodu :)
Tady máš ten dobrý důvod:
Citace: http://www.watzke.cz/cs/cc
Učím se C/C++, a tak píšu různý jednoduchý prográmky.
Tak schválně zkus porovnat výstupy obou programů, tj. lc bez -d a find bez -delete

ad concurrency:
Citace: /etc/init.d/rc
# Valid options are 'none', 'startpar' and 'makefile'.
btw. jelikož /etc/init.d/rc includuje /etc/default/rcS, přijde mi přehlednější napsat to tam

Věřím ti :) Když už mám lc, budu používat lc a někdy do budoucna se na lc už asi vyprdnu.

Jinak mám Lennyho a já tam mám
Kód: [Vybrat]
Valid options are 'none', 'shell' and 'startpar'

Offline Erich Stark

  • Aktivní­ uživatel
  • ****
  • Příspěvků: 546
    • Zobrazit profil
Re: Údržba a optimalizace systému
« Odpověď #7 kdy: 19. 11. 2009, 14:04:31 »
Marten a preco tam mas toho viac?

Kód: [Vybrat]
sudo nano  /etc/init.d/rc
Valid options are 'none', 'shell' and 'startpar'

naco je tam dobre startpar a makefile?
" The box said that I needed to have Windows XP or better ... so I installed Debian ."

MartenP

  • Host
Re: Údržba a optimalizace systému
« Odpověď #8 kdy: 19. 11. 2009, 15:20:01 »
Abych pravdu řekl, nevím, jaký je v tom rozdíl, ale v naprosté většině případů doporučují 'shell'. Pokud je to možné, dávej 'shell', pokud není, pak dle mého názoru nebude mít konkurenční boot nějaký výkonnostní přínos.
« Poslední změna: 19. 11. 2009, 18:14:26 od Márten »

Offline Erich Stark

  • Aktivní­ uživatel
  • ****
  • Příspěvků: 546
    • Zobrazit profil
Re: Údržba a optimalizace systému
« Odpověď #9 kdy: 19. 11. 2009, 20:33:01 »
Abych pravdu řekl, nevím, jaký je v tom rozdíl, ale v naprosté většině případů doporučují 'shell'. Pokud je to možné, dávej 'shell', pokud není, pak dle mého názoru nebude mít konkurenční boot nějaký výkonnostní přínos.

A ako sa daju dat obidva naraz?

'shell' and 'startpar'
" The box said that I needed to have Windows XP or better ... so I installed Debian ."

Offline Yontalcar

  • Uživatel
  • ***
  • Příspěvků: 131
  • Semper fidelis
    • Zobrazit profil
  • Jabber: yontalcar@jabber.cz
Re: Údržba a optimalizace systému
« Odpověď #10 kdy: 19. 11. 2009, 23:50:10 »
mimochodem, co se týče rychlosti bootování, zapoměl jsi na instalaci dashe a jeho nastavení jako výchozího systémového shellu
Kód: [Vybrat]
# aptitude install dash #nebo apt-get, jak chcete
# dpkg-reconfigure dash #nevím, jestli je nutný, nebo se výchozí shell nastavuje už při instalaci
NB: ASUS X53U; Debian GNU/Linux Sid amd64 (KDE4)

Jen dvě věci jsou nekonečné - vesmír a lidská hloupost. Tím prvním si ovšem nejsem tak jist. - Albert Einstein

MartenP

  • Host
Re: Údržba a optimalizace systému
« Odpověď #11 kdy: 20. 11. 2009, 10:03:46 »
A ako sa daju dat obidva naraz?

A na co bys chtěl dávat oba dva najednou? Pokud můžeš, dej tam 'shell'. Možná jsi to pochopil tak, že věta "Valid options are 'none', 'shell' and 'startpar'" znamená, že tam mám všechny tři. To ne. To je napsané v tom skriptu, aby uživatel věděl, co všechno tam může napsat. Já tam mám jen a pouze 'shell'.

Prohlédni si ten text nad concurrency=shell, určitě to tam budeš mít také.
« Poslední změna: 21. 11. 2009, 16:55:47 od Márten »

MartenP

  • Host
Re: Údržba a optimalizace systému
« Odpověď #12 kdy: 20. 11. 2009, 10:06:50 »
mimochodem, co se týče rychlosti bootování, zapoměl jsi na instalaci dashe a jeho nastavení jako výchozího systémového shellu

To jsem ani nezkoušel. Ve Squeezovi už je dash defaultně, ale v Lennym mi ani nenapadlo, že by to mohlo pomoci. Jaké je zlepšení při bootování? Pokud je nezanedbatelné, přidal bych to do návodu.

MartenP

  • Host
Re: Údržba a optimalizace systému
« Odpověď #13 kdy: 23. 11. 2009, 14:07:40 »
mimochodem, co se týče rychlosti bootování, zapoměl jsi na instalaci dashe a jeho nastavení jako výchozího systémového shellu
Kód: [Vybrat]
# aptitude install dash #nebo apt-get, jak chcete
# dpkg-reconfigure dash #nevím, jestli je nutný, nebo se výchozí shell nastavuje už při instalaci

Tak jsem to vyzkoušel na vlastní kůži a rozdíl v rychlosti bootování je neznatelný... Možná mám lepší pocit, že mám papírově rychlejšího skriptového interpretera.

MartenP

  • Host
Re: Údržba a optimalizace systému
« Odpověď #14 kdy: 29. 12. 2009, 17:03:36 »
Návod doplněn o tip s Dashem a mírně opraven. Děkuji Yontalcarovi.
« Poslední změna: 29. 12. 2009, 17:09:27 od Márten »