Sie sind auf Seite 1von 7

Acelerar el inicio de GNU/Linux

Para reducir el tiempo de inicio en Linux hay varias cosas que pueden hacerse. Paralelizar la carga de scripts de inicio, deshabilitar servicios que no utilicemos, cargar demonios en segundo plano entre algunas de ellas. En este caso la reduccion de los tiempos se traslada a nivel de disco. Es decir, lo que se intenta hacer es reacomodar la informacion que se utiliza en el arranque para que esta pueda ser leida sin que el cabezal del disco rigido tenga que "saltar" de un sector a otro. Si tenes un disco SSD esto no aplicar ninguna mejora por la forma en que se acceden los datos en este tipo de discos. Todo esto es posible gracias a E4rat (ext4 Reduced Access Time), un conjunto de herramientas que aprovechan una caracteristica que fue introducida en la version del kernel 2.6.31 que permite la defragmentacion on line de los volumenes con formato ext4. Las siguientes son las imagenes del bootchart que el autor publico en su sitio web donde se muestra la mejoria de estas herramientas. En una CPU Intel Core2Duo E8200 con un disco rigido Western Digital WD2500YS-01S corriendo Debian Wheezy paso de aproximadamente 45 segundos a tan solo casi 15 segundos. En mi caso con una PC mas modesta y corriendo Ubuntu 10.10 solo pude obtener una mejora del 25% (nada despreciable de todas formas)

Bootchart antes de la optimizacin

Bootchart luego de la optimizacin

Manos a la obra!

Primero descargan el .deb dependiendo la arquitectura que utilicen o el archivo fuente si no son usuarios de Debian o algun derivado desde este link. Para arch esta disponible via AUR pero en mi caso aplicar este metodo me ha sido contraproducente, tal vez sea por la forma en que Arch inicia. Si utilizan Ubuntu este paquete tiene un conflicto con ureadahead y para que e4rat funcione es necesario desinstalarlo previamente.
sudo dpkg --purge ureadahead ubuntu-minimal

Ahora instal las dependencias requeridas por e4rat


sudo aptitude install libblkid1 e2fslibs

o
sudo apti-get install libblkid1 e2fslibs

(Ubuntu 11.04)

El proceso se divide en 2 partes: Recoleccion de informacion Realocacion de la informacion

Recoleccion de informacion

E4rat debe saber cuales son los archivos que deben realocarse para acelerar el proceso de inicio. Es por esto que hay que agregar a la linea del kernel en el archivo /boot/grub/grub.cfg o menu.lst lo siguiente:
init=/sbin/e4rat-collect

Entonces la entrada del grub quedaria algo similar a esto


menuentry "Ubuntu, with Linux 2.6.35-30-generic" --class ubuntu -class gnu-linux --class gnu --class os {

recordfail insmod part_msdos insmod ext2 set root='(/dev/sda,msdos2)' search --no-floppy --fs-uuid --set=root 28fff97a-ca59-4660-92eb9d7d0dc617bf linux /vmlinuz-2.6.35-30-generic root=UUID=db9568fb-579e-4a0c8d045b2bd8260456 ro quiet splash nomodeset video=uvesafb:mode_option=1024x768 -24,mtrr=3,scroll=ywrap init=/sbin/e4rat-collect initrd /initrd.img-2.6.35-30-generic }

Luego de guardar los cambios hay que reiniciar para que comience la recoleccion de informacion necesaria para la realocacion de los datos. Desde que se inicia el sistema E4Rat colectar informacion durante los siguientes 120 segundos. Al principio tarda unos segudnos pero seguramente vas a tener el sistema funcionando antes de los 120 segundos. Durante ese tiempo se siguen monitoreando los archivos que se utilicen, entonces para terminar la recoleccion de informacion podes ejecutar en la consola
sudo e4rat-collect -k o sudo killall e4rat-collect

Con esto, ya se saben que archivos deberian ser realocados en el disco. La lista de estos archivos se puede encontrar en /var/lib/e4rat/startup.log por si queres saber cuales son Si los datos fueron recolectados ahora es necesario eliminar la linea en el kernel que se agrego anteriormente para que en el proximo reinicio no vuelva a ejecutarse la herramienta de recoleccion. Ya casi terminando es necesario eliminar la linea que se agrego al kernel en el grub.cfg para que en el proximo inicio no se intente recolectar informacion nuevamente.

Realocacion de la informacion

Para que la informacion se ordene hay que abrir una consola y ejecutar:
sudo init 1

con esto se quedaran sin interfaz grafica pero a no asustarse que no hay que hacer mucho. A los usuarios de Ubuntu les aparecer un menu donde deben elegir root console o similar sino deben loguearse como root. Una vez autenticados como root se comienza la recoleccion ejecutando:
e4rat-realloc /var/lib/e4rat/startup.log

Esto puede tardar un tiempo dependiendo de la cantidad de archivos que deben reorganizarse y es aconsejable ejecutarlo unas cuantas veces hasta que no haya ninguna mejora por aplicar. Por ultimo para que esta mejora se aplique hay que aadir lo siguiente a la linea del kernel en el grub.cfg (o menu.lst)
init=/sbin/e4rat-preload

Resultando algo similar a esto


menuentry "Ubuntu, with Linux 2.6.35-30-generic" --class ubuntu -class gnu-linux --class gnu --class os { recordfail insmod part_msdos insmod ext2 set root='(/dev/sda,msdos2)' search --no-floppy --fs-uuid --set=root 28fff97a-ca59-4660-92eb9d7d0dc617bf linux /vmlinuz-2.6.35-30-generic root=UUID=db9568fb-579e-4a0c8d045b2bd8260456 ro quiet splash nomodeset video=uvesafb:mode_option=1024x7 68-24,mtrr=3,scroll=ywrap init=/sbin/e4rat-preload initrd /initrd.img-2.6.35-30-generic }

No es un proceso dificil de realizar y ademas se obtiene una buena mejora en la carga de nuestro GNU/Linux

Das könnte Ihnen auch gefallen