Optimizar arranque en Debian


La velocidad de arranque en Debian Jessie es bastante buena comparada con versiones anteriores por motivos técnicos algo largo de explicar, dando paso a una nueva versión de arranque donde init.d mejora notablemente junto con la nueva versión de systemd.



El caso es que aún podremos mejorar y recortar esos segundos que hacen demorar la carga del sistema, dependiendo de tu equipo será aún más notable.



Es muy probable que estos métodos para optimizar el tiempo de arranque del sistema debian también funcione para Ubuntu, Linux Mint y otros derivados. Incluso en distribuciones como Fedora, OpenSuse, Arch Linux etc… también existen en sus repositorios la mayoría de las herramientas aunque difiere ligeramente el método de aplicación como el de instalación con su gestor de paquetes correspondiente. ¡Todo es probar!



Por si lo necesitas: Al final de la entrada dejo un VideoTutorial


Arranque con carga en paralelo



Como primera recomendación para aumentar la velocidad de carga sería establecer la carga en paralelo en vez de por defecto 1 a 1.



Este método aumentará el arranque en proporción a cuanto más hilos dispongas en tu CPU ya que se correrán más servicios simultáneos.Por último recomiendo probar este y cualquier otro método para acelerar el arranque después de hacer una copia de respaldo de tu sistema o en un entorno de pruebas ya que utilizaremos un script que modifica automáticamente el sistema para el arranque en Debian, a pesar de esto nunca me ha fallado ni estropeado el arranque de ningún equipo, Aún así debes saber que es tu responsabilidad.



Instalamos el script:

apt-get install insserv




Reconfiguramos el script acabado de instalar

dpkg-reconfigure insserv




Ahora declararemos que sea usado el script que acabamos de instalar:

CONCURRENCY=startpar >> /etc/default/rcS





Eliminar consolas TTY




Por defecto debian instala 6tty que son ventanas para consola a las cuales podemos acceder pulsando desde “ctrl+alt+f1” hasta “ctrl+alt+f6” y luego tenemos “ctrl+alt+f7” para volver a la sesión gráfica si la tenemos iniciada.



Los recursos que ocupan estas consolas son bastante bajos y además el tiempo de carga en el arranque también es bajo pero como para muchos de los usuarios es algo que no utilizan y les interesa raspar rendimiento por cualquier esquina podemos desactivar todas y dejar solo 1 consola.Para desactivar la consola tenemos que entrar a modificar el archivo “/etc/inittab” con algún editor como “nano” por ejemplo así:





$ nano /etc/inittab




En este archivo buscaremos las líneas casi al final:

<P class="editor">
<BR/>1:2345:respawn:/sbin/getty 38400 tty1
<BR/>2:23:respawn:/sbin/getty 38400 tty2
<BR/>3:23:respawn:/sbin/getty 38400 tty3
<BR/>4:23:respawn:/sbin/getty 38400 tty4
<BR/>5:23:respawn:/sbin/getty 38400 tty5
<BR/>6:23:respawn:/sbin/getty 38400 tty6
</P>
<BR/><BR/>

Y le comentamos las que no queramos usar (aconsejo dejar mínimo 1 para algún momento de bloqueo del entorno gráfico poder cerrar el programa que se cuelgue o reiniciar las X entre otras utilidades).<BR/>

<P class="editor">
<BR/>1:2345:respawn:/sbin/getty 38400 tty1
<BR/>#2:23:respawn:/sbin/getty 38400 tty2
<BR/>#3:23:respawn:/sbin/getty 38400 tty3
<BR/>#4:23:respawn:/sbin/getty 38400 tty4
<BR/>#5:23:respawn:/sbin/getty 38400 tty5
<BR/>#6:23:respawn:/sbin/getty 38400 tty6
</P>
<BR/><BR/>

<IMG src="/images/Optimizar_Arranque_Debian/inittab.jpg" alt="inittab para solo 1 terminal"/>
<BR/>
Pulsamos "ctrl+o" para guardar el documento. Para el próximo arranque solo cargará 1 consola




Quitar servicios innecesarios al arrancar



Este punto es más sencillo y a la vez entretenido ya que no os puedo decir que servicios tenéis que quitar y vosotros mismo lo tenéis que valorar.


Una aplicación muy cómoda para gestionar los servicios que se inician es “bum” la cual se puede instalar mediante:


apt-get install bum




En esta aplicación solo tenemos que desmarcar lo que no queremos que se nos inicie al arrancar nuestro equipo y una vez hecho pulsamos sobre aplicar.


La interfaz gráfica que presenta el programa es algo de este estilo:


bum boot up manager

<P>
    Algunos <STRONG>servicios</STRONG> que podéis desactivar tranquilamente sin cargaros nada del sistema son:
    <BR/>
    <UL>
        <LI>avahi-daemon --> Descubre servicios y host en red, no es útil si solo tienes 1 PC</LI>
        <LI>bluetooth --> Desactiva el bluetooth si no lo utilizas para nada, es raro usarlo</LI>
        <LI>cups-browsed --> Descubre impresoras compartidas en la red, en el caso que tengas...</LI>
        <LI>cups --> Gestiona los trabajos de impresión, si tienes impresora</LI>
    </UL>
    <BR/>
    Hay bastantes más que puedes desactivar ya que probablemente no los uses. Lo que te recomendaría es que fueses viendo los que tú tienes activado y busques en www.google.es los que no sepas que función tienen. En muchos te vendrá una descripción sobre cual es su función.
    <BR/><BR/>
    Te aconsejaría que apuntaras en una hoja los servicios que has desactivado por si necesitaras reactivar alguno después de reiniciar (cualquiera puede equivocarse, pero no todo el mundo previene)
</P>

Registrar e Indexar aplicaciones al inicio




Otra buena idea que nos dará un buen empujón sobre el tiempo de inicio es utilizar un registro sobre el proceso de arranque, lo cual creará un perfil para usarlo en posteriores arranques, es decir, creará una especie de índice en el que se basará para arrancar sin tener que comprobar archivo por archivo cada vez que iniciamos el equipo.



<P>
    En este punto te diré una cosa: Si tu <STRONG>debian</STRONG> ya inicia en menos de 20 segundos ¡NO TOQUES! yo he conseguido iniciar en 6 segundos con los pasos anteriores (Tengo raid 0 con discos SSD que también ayuda un poco) con el siguiente método bajé a 4 segundos pero después de varias actualizaciones "<I>apt-get upgrade</I>" (un mes y medio después de hacerlo) tuve problemas así que el riesgo es tuyo.
</P>

<P>
    La herramienta para dicha función se llama "<STRONG>readahead</STRONG>" y se encuentra como las anteriores en los mismos repositorios de Debian y se instala así:
    <P class="terminal">apt-get install readahead</P>
    <BR/>
    Una vez instalada tenemos que crear un archivo vacío donde después escribirá el programa solo ya el perfil de arranque. Lo crearemos de la siguiente forma:
    <P class="terminal">touch /etc/readhead/profile-once</P>
    <BR/>
    Cuando reinicies por primera vez notarás el efecto contrario, es decir, se ralentiza el arranque.
    <BR/>
    Tardará mucho más de lo normal, en algunos casos minutos (hasta 2 o 10 minutos ya según la suerte y cantidad de paquetes/procesos) pero te alegrarás cuando reinicies la segunda vez.
    <BR/>
    A mi personalmente me dio la impresión que arrancaba incluso antes cuando llevaba 12 reinicios pero no llegué a controlar el tiempo para ver si bajaba mi marca de 4 segundos.
</P>

Limpiar Sistema Operativo Linux




Otra opción, sobre todo si llevas algún tiempo desde que instalaste tu sistema Debian Linux, es limpiar paquetes, registros, papeleras, caché, kernels antiguos… además de ahorrar una gran cantidad de espacio en el disco duro también puede influir en cuanto al arranque (aunque es menos común pero no se pierde nada y además le das una limpieza al sistema).


En estas entradas os detallo como limpiar el sistema y usar los programas que harán esta tarea por nosotros:



Compilar el Kernel




Al compilar el kernel podemos optimizar el arranque designando que deseamos cargar y evitando módulos que no usaremos.

<P>
    Este paso es para expertos y se merece una entrada completa que ya plantearé en un futuro próximo intentando simplificar el proceso haciéndolo más amigable y que no llegue a dar tanto miedo pues al fin y al cabo si lo hacemos mal, podremos iniciar con el kernel anterior (podemos tener instalados varios kernels a la vez cada uno compilado de una manera).Para más información sobre compilar un kernel puedes tomar información desde la <A title="Enlace a la web oficial debian" href="https://www.debian.org/doc/manuals/debian-handbook/sect.kernel-compilation.es.html" target="_blank">web oficial para debian.</A>
</P>

Comprobar el tiempo de inicio




Ahora solo nos queda comprobar exactamente cuanto tiempo tarda en iniciar nuestro equipo y que servicios son los que más nos están retrasando el arranque. Con systemd lo tenemos fácil ya que nos ofrece 2 comandos muy útiles y bastante detallados para conocer estos datos.


Para conocer el tiempo total de arranque:

systemd-analyze


Esto nos muestra un resumen separando el kernel, la imagen de arranque y el espacio de usuario tanto cuanto tarda cada uno individual como en el conjunto.



Para ver cada servicio por separado tenemos este comando:

systemd-analyze blame


Este comando nos detalla por cada servicio el tiempo en Milisegundos que necesita para ser arrancado así podremos detectar cual nos hace retrasar el arranque.


Por último quiero volver a decirte que si tu equipo tarda menos de 20 segundos en arrancar tal vez no te merezca la pena tocar nada y seguir disfrutando ya que es un buen tiempo.





Optimizar Rendimiento Linux

Raúl Caro Pastorino

Informático, técnico en sistemas, redes, baja tensión (electricidad) y desarrollador de aplicaciones WEB. Soy un apasionado por GNU/LINUX y el software libre en general desde prácticamente el año 2001-2003 que comencé. Intento usar y trabajar siempre con código libre o abierto de forma profesional. Me apasiona la programación, la micro-electrónica, el diseño gráfico y edición multimedia. Fan de Raspberry y arduino. Programo en bash, python, php y javascript principalmente. Repositorios de código con git: https://gitlab.com/fryntiz https://github.com/fryntiz

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.