Millorar els temps d’engegada de l’Ubuntu
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…