HTML

Bagoj úr blogja

Kíváncsi Bagoj befigyel a Linux belsejébe, illetve különféle Linux terjesztéseket próbál ki. Ha jó napja van, scriptet ír Neked.

Friss topikok

Gyorsítsunk patkánnyal (e4rat)

2014.02.20. 00:17 bagoj ur

Folytatom a boot gyorsításos dolgot, amit majd meg fogok szakítani ilyen-olyan mellékszálakkal, de kitartóan török a "leggyorsabb Debian HDD-n" címre. Ez a következő, még eléggé látványos eredményt hozó fázis.

Az e4rat (ext4 reducing access time) egy olyan toolkészlet, amely a boot idő redukálását az alábbiakkal végzi:

  1. Felméri, hogy milyen fájlokat olvas fel a rendszer az indulás első 120 másodpercében
  2. A fájlokat fizikailag át- (sorba)rendezi a merevlemezen, így az elérési idő csökken
  3. A sorbarendezett blokkokat a boot elején előre beolvassa a memóriába, ezzel az elérési idő egy nagyságrendet javul

Mint a névből is látszik, ez a módszer csak ext4-en működik, mivel a fájlok átrendezéséhez egy ext4-es feature-t használ (ez a 2.6.31-es kernel óta érhető el). Állítólag nem elérhetetlen az 50%-os javulás is, én nem ennyire vérmes reményekkel indultam neki, de tény, hogy jelentősek az eredmények.

Hogyan?

Mit kell tennünk? Mindössze három lépést:

  1. Elindítjuk a felmérést (ezt elég egyszer futtatni, illetve érdemes minden esetben, ha átrendezzük a bootoláskor induló programokat)
  2. Átrendezzük a fájlokat (ezt több lépcsőben érdemes megpróbálni, és néha-néha érdemes újra ráfuttatni)
  3. Beállítjuk az előreolvasást (ezt permanensen be kell állítani, minden bootkor futni fog)

Easy as 1-2-3, ahogy az angol mondja. Hehe, vicceltem.

Először is telepítsük fel az e4rat-ot, letölthető DEB csomagokat találunk a hivatalos oldalon. Ezután bootoljunk, és a GRUB képernyőn nyomjunk egy e betűt az adott sor szerkesztéséhez. A kernel paraméterek közé (súgok: linux   /boot/vmlinuz-3.2.0-4-686-pae root=UUID=... sor) a végére biggyesszük oda:

init=/sbin/e4rat-collect

Ennek hatására nem az init, hanem az e4rat-collect indul el, és ez indítja az initet, miközben figyeli, hogy az init milyen programokat indít el. Normál esetben 120 másodperc után lép ki az e4rat, de előbb is leállíthatjuk a sudo e4rat-collect -k parancs segítségével (így elkerülhetjük, hogy a boothoz szervesen nem tartozó alkalmazásokat is belevegye az "optimalizációba", így túlhízlalva az előolvasást és túlnövelve annak idejét). Persze ki is várhatjuk a 120 másodpercet, csak ne indítsuk el pl. a Libreoffice-t közben. :-)

Az elkészült eredmények a /var/lib/e4rat/startup.log fájlban lesznek, ha megnézzük a tartalmát, látható, hogy ez mindössze egy fájl lista. Ennek segítségével tudjuk indítani a fájl blokkok sorbarendezését; azonban előtte egy felhasználós üzemmódba kell váltanunk.

Mentsünk el minden futó dolgot, majd adjuk ki az init 1 parancsot. Konzolos felületre jutunk, és meg kell adni a root felhasználó jelszavát. (Erre azért van szükség, hogy ne fogja más processz az átrendezendő fájlokat.)

A fájl optimalizálást az alábbi paranccsal indíthatjuk. Futtassuk le többször, addig amíg ki nem írja, hogy nem tud tovább rendezni:

e4rat-realloc /var/lib/e4rat/startup.log

Még ne bootoljunk újra, rögtön be is írhatjuk a GRUB paraméterek közé, hogy mostantól állandóan indítsa az e4rat-ot:

# vi /etc/default/grub
...
GRUB_CMDLINE_LINUX_DEFAULT="init=/sbin/e4rat-preload quiet"
...

(Keressük meg a fenti sort és írjuk bele az init=... részt.) Fontos a grub telepítő újrafuttatása, enélkül nem élesedik a változtatás:

update-grub

...és kész!

További magyarázat helyett álljon itt egy előtte-utána videó. Sajnos nincs videó rögzítő eszközöm, ezért felraktam vmware-be is a Debiant hajszálpontosan ugyanazt a beállításokat használva, mint amiről írtam a korábbi posztban. Összehasonlításnak ez is épp elég látványos. Az elért eredmény 28%-kal felgyorsult boot.

Előtte

Utána

 

 

5 komment

Címkék: debian init boot gyorsítás ext4 e4rat

A bejegyzés trackback címe:

http://bagojur.blog.hu/api/trackback/id/tr295823246

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben.

Uhubian GNU/Linux (törölt) 2014.02.24. 22:13:55

Hajrá Bagoj Úr!
Ezek szerint nem csalódtál a Debian-ban. Örülök, hogy újra blogolsz. Szivesen olvasom szinvonalas írásaidat. Most próbálok az LXDE desktopra áttérni a Gnome/Mate után. Tudnál ajánlani LXDE desktopra Gnome tipusú control centert? Sajnos az lxde-control-center -nek nem találtam debianos változatát.
Üdv
Uhubian

uhubian.hu/

bagoj ur 2014.03.13. 21:41:59

@Uhubian GNU/Linux: Ezzel a kérdéssel megfogtál, de utánanézek.

Uhubian GNU/Linux (törölt) 2014.03.14. 17:59:51

Köszönöm, a Gnome control center lett a megoldás. A Systemback miatt is integrálni kellett a Gnome shell-t. Sajna ez van, de nem találtam jobb megoldást.
Uhubian

Darkcomet 2014.03.25. 11:40:03

Jól látom? 5 sec gyorsulás miatt kéne végigcsinálni ezt az egész őrületet? Félreértések elkerülése végett semmi rosszindulat sincs a mondandómban, csak én már rég nem vagyok akkor kocka, hogy ilyesmivel bibelődjek röszmös 5 másodperces boot gyorsulásért. Amúgy tegyél be rendszer eszköznek egy ssd-t, na, onnantól kezdve nem lesz gondod a boot idővel még a lemezműveletek sebességével. ;-)

bagoj ur 2014.04.09. 11:18:24

@Darkcomet: Röviden: jól látod. :-) Ez a megoldás kb. 15 perc energia-befektetéssel hoz gyorsulást hardver módosítás nélkül. Tegyük fel, hogy veszek egy SSD-t ugyanilyen célból:

- utánanézek a neten, összehasonlító teszteket olvasgatok, elmegyek a boltba, vagy megrendelem - legalább 3 óra
- kiszerelem a régi vinyót, be az újat - fél óra
- Boot USB-ről, partíciók létrehozása, másolás a régi vinyóról - 3 óra

Összesen elköltöttem 25e forintot és kb. 7 órát az életemből. Lehet, hogy többet nyerek boot időben, de hányszor kell újrabootolnom SSD-ről, hogy visszajöjjön ez az idő? :-)