El Noguer

Joaquim Perez i Noguer

Millorar els temps d’engegada de l’Ubuntu

Filed under: Linux — Joaquim Perez Noguer at 3:34 pm on Diumenge, juliol 27, 2008

Avui he estat provant de millorar els temps d’engegada de l’Ubuntu seguint els consells d’en Gil Forcada. En el meu cas és el següent:

  •  Tinc un portàtil Acer TravelMate 4100 amb 2Gb de RAM
  •  El meu sistema és un Gnome, Ubuntu 7.10 encara, Awn i Compiz-Fusion.

I els temps eren aquests

  • Tarda 20 segons a arrencar la BIOS+GRUB+…
  • Tarda 50 segons a arrencar el GNU/Linux
  • Tarda 50 segons a arrencar el GNOME i tota la pesca.

Gràcies als consells d’en Gil ara els temps d’arrencada són

  • Tarda 20 segons a arrencar la BIOS+GRUB+…
  • Tarda 30 segons a arrencar el GNU/Linux
  • Tarda 50 segons a arrencar el GNOME i tota la pesca.

En resum he reduit un 30% el temps d’arrencada del GNU/Linux. Tot i
així encara em queda la feina de mirar de millroar el temps d’arrencada
del GNOME, quan ho tingui ja ho explicaré.

Com ho he aconseguit? doncs bàsicament fent tres coses de les que s’expliquen a l’article de tuxpan.com: (tots els consells descrits aquí són potencialment perillosos, si es volen provar cal anar molt en compte i saber què es fa)

 1. Eliminar serveis inútils

  • He aturat serveis inútils del menú Preferències – Sessions – Programes d’inici
  • He eliminat brltty (teclat bryle) i  pcmciautils (perifèrics pcmia) de /etc/rcS.d 

 2. Eliminar la comprovació del disc a cada arrencada

  • Editant el fitxer /etc/fstab, cada línia configura com s’ha de
    muntar cada un dels sistemes de fitxers. L’últim camp, és un numèric 0,1
    o 2 que indica si cal comprovar el sistema de fitxers quan s’arrenca la
    màquina. Els he deixat tots a 0, així no farà la comprovació de disc
    cada 30 engegades. 
  • Per a què la comprovació del disc es faci quan tanco l’ordinador en comptes de quan l’engego, provaré AutoFsck.

 3. Actualitzant la llista de fitxers que es precarreguen a l’arrencada.

  • Mitjançant l’eina readahead el sistema carrega a memòria tots els fitxers de cop a l’inici. Però hi ha un problema, la llista de fitxers a carregar (/etc/readahead/boot) és incorrecte en la majoria de casos i cal refer-la. No és broama, sense això el sistema tarda 10 segons més a l’iniciar.
  • Per a refer-la, cal posar "profile" al final de la línia de l’inici del kernel.
  • Per tant cal tornar engegar el linux i quan demana si es vol
    engegar l’ubuntu o l’ubuntu a prova de problemes, cal prémer la tecla
    "e" d’editar, seleccionar la línia "kernel /vmlinux…" i tornar a
    prémer "e" per editar-la i afegir el text " profile " al final. Un cop
    fet això cal executar el nou boot amb prement "b"
  • Quan hagi acabat d’arrencar haurà actualitzat el fitxer a /etc/readahead/boot
  • Ara només cal acabar-lo d’arreglar fent

            grep -v  -e "\.o$" /etc/readahead/boot | xargs stat -c %i.%n | sort -n | cut -d "." -f2- > boot.sorted

  •  Pot passar que dongui error perquè no trobi un fitxer de la
    llista o perquè sigui un fitxer amb espais, si és així cal editar el
    fitxer cat /etc/readahead/boot i arreglar els fitxers que fallin. Els
    fitxers amb espais cal que estiguin entre cometes (p.e. /home/"El meu
    fitxer amb espais")
  • Un cop el fitxer boot.sorted estigui bé cal copiar-lo damunt del bo

           sudo cp boot.sorted /etc/readahead/boot

Tal com deia abans, ara estic intentant reduir el temps d’engegada del
GNOME. Després de llegir una mica sobre el tema, he arribat a la
conclusió que segurament la solució és generar una llista readahead per al GNOME també. He fet  el programet que llegeix els fitxers a l’inici del GNOME.
Només cal crear un fitxer a /etc/X11/Xsession.d/00readahead amb el següent contingut
 

for list in /etc/readahead/gnome; do
readahead-list $list &
done
wait

Però per ara no he tingut sort en trobar la llista de fitxers
(/etc/readahead/gnome) que cal precarregar perquè comenci més
ràpidament. Continuaré investigant… 



No Comments »

No comments yet.

RSS feed for comments on this post. TrackBack URI

Leave a comment

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>