16 890
Tesztek Android Google Apple Microsoft Samsung Huawei Linux Okostelefon Biztonság Tudomány Facebook Videojáték Film

Linux fénysebességgel

Szapper Balázs2009.02.20. 09.31
Egészen biztosan sokan találkoztunk már azzal a jelenséggel, amikor bekapcsoljuk a számí­tógépünket, és a rendszerindí­tási folyamat „évszázadokat” igényel, mialatt mi türelmetlenül ülünk, várva, hogy használhassuk végre a csúcstechnika nagyszerű termékét. Ez a folyamat nem specifikusan Ubuntus, vagy Linuxos probléma, Windows alatt is szert tehetünk hasonló tapasztalatokra. Mind Windowson, mind Linuxon indulnak meghajtóprogramok, modulok, szolgáltatások, grafikus felhasználói felület, amelyek mind-mind időrabló módon indulnak – és alkalmazásokról még nem is beszéltem. Windows alatt is biztosan vannak olyan folyamatok, amelyek feleslegesen indulnak el, némi utánajárással felkutatható, mi az, amit nyugodt szí­vvel kikapcsolhatunk, e cikk most azonban az Ubuntura koncentrál, az itt leí­rtak nagy valószí­nűséggel Debian és annak egyéb derivatí­vái alatt is működnek. Igen, nincs mit szépí­teni a dolgon, ha az elterjedtebb grafikus felületek közül használjuk valamelyiket (GNOME, KDE, XFCE), számoljunk a lassabb indulási idővel!

Ezen í­rás kimondott célja, hogy egy – a körülményekhez képest – gyors, de legalábbis az alaprendszernél gyorsabb indí­tású rendszert mutasson be, valamint megpróbálunk kezdeni valamit azokkal az alkalmazásokkal is, amelyek hí­rhedten lassan hajlandóak csak elindulni – gondolok itt elsősorban az OpenOffice Writerre, Gimpre, Firefoxra. Az sem cél, hogy egy mindenre kiterjedő, kifogástalan leí­rás készüljön, egészen biztosan lehetnek benne szakmai hibák, amik elsősorban tapasztalatlanságból fakadnak, a cél inkább az, hogy segí­tséget kapjanak azok, akik lassúnak érzik a rendszerük használatát. A tapasztalatokat a saját otthoni rendszeremen szereztem, de néhány kollégám is segí­tségemre volt teszteléssel.

Nem titok, hogy az itt leí­rtakat az Intel kernelhackerei által végzett munka inspirálta. Nem cél, hogy 5 másodperc alatt bootoljon a rendszer, de cél, hogy relatí­ve kevés „hackeléssel” csökkentsük az indulási folyamatok idejét, í­gy akár a kezdők is alkalmazhatják – természetesen olyan kezdőkre gondolok, akik tudnak kezelni egy szövegszerkesztőt, egy állománykezelőt.

Mire jó a readahead? Alkalmazásával bizonyos állományok előreolvastathatók a rendszermemóriába, í­gy amikor szükség van rájuk, már nem lemezről kell beolvasni őket, hanem a lényegesen gyorsabb memóriában már rendelkezésünkre állnak. Fontos kitétel, hogy a leí­rtakhoz legalább 512 MB memória kell, alatta már igen necces a dolog (de szerintem ha az alkalmazások előreolvasását is elvégeztetjük, akkor még jobb, ha legalább 1 GB RAM-unk van).

Vegyük használatba a readaheadet, azaz a számí­tógép indí­tásakor a GRUB-ban álljunk rá arra a sorra, ahol az indí­tani kí­vánt kernelünk van, és adjuk hozzá a kernel indí­tási paramétereihez a profile kulcsszót (van ugyan egy előre elkészí­tett előreolvasási lista, de az olyan, amilyen). Készüljünk fel, hogy ekkor a rendszerindí­tás lényegesen lassabb lesz, mint általában, hiszen a readahead figyeli, milyen állományok kerülnek beolvasásra a lemezről, majd ezekről listát készí­t a későbbi indí­tásokhoz. Ez a folyamat a grafikus felület indí­tásáig tart, vagyis ekkor leáll a readahead. Ez azért van í­gy, hogy a bootolási folyamatban ne kerüljenek beolvasásra az alkalmazások, viszont azokkal is illene valamit kezdeni, illetve a GUI betöltődését is gyorsí­tjuk, amennyire lehetséges. A megoldás egy részét az UbuntuForums-on jdong prezentálta. Aki akarja, itt angolul elolvashatja, e nyelvet nem ismerőknek leí­rom, mit csinált a szerző, majd továbblépünk kicsit az alkalmazásokhoz. Fontos megjegyzés, hogy – nagyon ritkán – a jdong által alkalmazott dolgok nemhogy gyorsí­tották, de inkább lassí­tották a grafikus felület betöltődését, egyelőre ismeretlen ok miatt.

Készí­tsünk egy könyvtárat a readahead állományainak:

mkdir ~/.readahead

Ezután lépjünk ki logout-tal, majd lépjünk be a karakteres terminálon (Alt+Ctrl+F1) és indí­tsuk el a readaheadet:

sudo readahead-watch -o ~/.readahead/gnome.root /

A merevlemez elkezd darálni, akár több percig is, majd amikor visszakapjuk a promptot, a program készen áll, hogy figyelje, mi is történik tulajdonképpen. Térjünk vissza Alt+F7-tel a grafikus belépőképernyőre és lépjünk be. Miután sikeresen beléptünk, egymás után indí­tsuk el és zárjuk be azokat a programokat, amiket gyorsí­ttatni szeretnénk; ha ezzel megvagyunk és leállt a lemezünk, térjünk vissza a korábban használt karakteres terminálhoz (Alt+Ctrl+F1) és állí­tsuk le az előreolvasást végző programot:

sudo killall readahead-watch
sudo chown ~/.readahead -R


A lista ugyan elkészült, de ha adatállományokat is tárolunk az Asztalunkon, főleg nagyobbakat, akkor a readahead azt is belevette a listába (hiszen betöltésre kerül), de ha ott mondjuk egy 1 gigás AVI fájlunk van, nem túl jó ötlet beolvastatni az egészet memóriába. Vizsgáljuk át a program által generált listát, legfelül láthatjuk a legnagyobbat (KB-ban):

cat ~/.readahead/gnome.root | xargs -i ls -lk {} | sort -rn -k +5 | less

Ha úgy látjuk, hogy vannak ott olyan állományok, amiket nem szeretnénk előreolvastatni, akkor kedvenc szövegszerkesztőnkben töröljük ki az őket prezentáló sorokat – természetesen kisebb adatállományokat is beszúrhatunk, ha úgy tartja kedvünk.

Az eddig leí­rtak a / fájlrendszerre vonatkoznak, ha több szeparált partí­ciónk van (pl. /home), akkor azokra is külön meg kell csinálni a leí­rtakat, természetesen külön állományba téve az azokra vonatkozó listákat, valamint mindig a megfelelő fájlrendszerre adva ki az utasí­tásokat.

Indí­tsuk úra a gépünket, hogy lássuk, mi is a különbség: a „narancssárga” képernyőn állunk mindaddig, amí­g a lemez dolgozik, ez azonban észrevehetően kevesebb munka, mint korábban.

Előfordulhat, hogy nem azonnal lépünk be a grafikus felületen, mert bekapcsoltuk a gépet, aztán nekiálltunk valami mást csinálni. Ilyenkor jól jöhet, ha már a bootfolyamat végére befűzzük a grafikus belépéshez szükséges állományok előreolvasását, í­gy a tényleges belépés sokkal gyorsabban zajlik majd, mint korábban. A kivitelezéshez nyissuk meg a /etc/rc.local állományt és az exit 0 kifejezés előtt szúrjuk be ezt a néhány sort:

for list in /home//.readahead/*; do
readahead-list $list
done


Indí­tsuk úra a gépünket és várjuk meg, mí­g minden lemezművelet befejeződik, azután lépjünk be és ellenőrizzük, nyertünk-e valamit időben.

Felmerülhet néhány kérdés azokban, akik végigcsinálták a fentieket:

  • Mennyi időbe telik a readahead meghí­vása olyan állományokra, amik már gyorsí­tótárazva vannak? Körülbelül 0.05 másodpercet igényel a readahead rászabadí­tása egymás után kétszer ugyanarra a listára.

  • Mennyi időbeli átfedést jelent, ha a háttérben még fut a readahead, mikor belépek? Körülbelül 2 másodperc volt jdong rendszerén.


Ha nem a várt eredményt kapjuk, és vissza szeretnénk vonni az elvégzett dolgokat, nem kell mást tennünk, mint törölni a ~/.readahead könyvtárat, valamint a /etc/rc.local állományhoz adott sort.

Konklúzió

Mielőtt rátaláltam volna a readahead különböző alkalmazási formáira, olyan 85 másodperc körüli idő után volt használható a rendszer a gyári disztribúcióval (hozzáteszem: elég sok minden elindul, ráadásul egy olyan HDD-ről, amely meglehetősen bizonytalan állapotú). Ezt a leí­rást követve 42 másodpercre csökkent ez az idő – szeparált /home partí­cióval együtt.

A programoknál helyenként bámulatos sebességnövekedést kaptunk: elég sok negatí­v jelzőt lehet mondani a Windowsról és a Microsoft Office-ról, azt azonban nem, hogy az MSO indí­tása Windowson lassú lenne – és a linuxos táborban sokan irigykedve nézik ezt a sebességet. Jó hí­r: az előreolvasott OOWriter kb. ugyanazzal a sebességgel indul Linuxon, mint amit a redmondi páros produkál. Hasonló jó tapasztalatokra lehet szert tenni, ha GIMP-et használunk. Indí­táskor elég sok apró állományt olvas be, emiatt hosszú tí­zmásodperceket tölt az indulással – de nem előreolvasva! A Firefoxnak, az Update Managernek és a Synapticnak szintén előnyére válik, ha rájuk uszí­tjuk a readaheadet.

A cikk eredetileg a logout.hu weboldalon jelent meg sh4d0w í­rásaként.
Kattints ide  ➜

Az Androbit technológiai és tudományos magazinnál hiszünk abban, hogy az információ mindenkit megillet. Hosszú évek munkájával megszerzett hírnevünknek köszönhetően megadatott számunkra az a lehetőség, hogy műszaki témájú médiumként is elérhessünk minden internetező korosztályt. Tesszük ezt olyan hírekkel és cikkekkel, amik között egyaránt szerepel nagyobb tömegeket és kisebb szakmai csoportokat érintő tartalom is.

A témák gondos összeválogatásának és a cikkek minőségi kidolgozottságának hála mára Magyarország egyik legnépszerűbb technológiai és tudományos információforrásává váltunk – fejlesztéseinkkel és kutatásainkkal pedig igyekszünk mindig egy lépéssel a versenytársak előtt járni.

A weboldalunkon található, szerkesztőségünk által készített tartalmakra vonatkozó összes felhasználási jogot az Androbit technológiai és tudományos magazin birtokolja. A tartalmak egyes részleteinek felhasználását kizárólag látványos (vagy jól hallható) forrásmegjelöléssel engedélyezzük. A feltételek megszegésének jogi következményei lehetnek. A feltételektől eltérő tartalomfelhasználás kizárólag megegyezés útján lehetséges.
Copyright © 2007-2016 – Makay József (makay@androbit.net)