Vamos a hacer uso del comando systemd, tan cuestionado hace tiempo por muchos linuxeros, para determinar cuanto tiempo tardan en cargar los distintos componentes de tu linux, de una forma simple. Teniendo en cuenta que el proceso de arranque del sistema puede tener múltiples cuestiones, la idea es poder saber cuales son las que más tardan a ver si se puede acelerar el inicio.

Al tener instalado systemd, viene incorporado un comando llamado systemd-analyze, el cual nos deja visualizar el tiempo que tardan las unidades que en realidad son los servicios (.service), puntos de montaje (.mount), dispositivos (.device) o sockets (.socket).

Si lanzamos el comando (como root) nos muestra algo como la siguiente imagen:

# systemd-analyze

systemd-1En una primer medida nos muestra lo siguiente:

Startup finished in 2.794s (kernel) +  25.921s (userspace) = 28.715s

Con el cual podemos determinar el tiempo total del último arranque del sistema, mostrando la cantidad de tiempo que le tomo cargar el kernel y el tiempo en el espacio del usuario. En otras distribuciones podemos ver un +(initrd) que hace referencia a un sistema de archivos temporal usado por el núcleo Linux durante el inicio del sistema, pero en Debian y derivadas no esta discriminada si no que se incluye en el kernel.

Para tener más detalle lanzamos el siguiente comando que nos mostrará todo con el tiempo de cada componente:

# systemd-analyze blame

También podemos hacer después de blame un > archivo.txt para que arroje el resultado a un archivo determinado para posterior análisis dado que puede ser extenso.

Si no otra variante es limitar el resultado a los que más tiempo les llevo cargar con:

# systemd-analyze blame | head

Ahora que ya podemos ver el tiempo que tardan en cargar cada una de las unidades, podemos gestionar que puede o no iniciar haciendo uso de systemctl, como siempre recomiendo hacer esto en un ambiente de pruebas para aquellos que tocan por primera vez, y ejecutar man systemctl pero básicamente funciona de la siguiente forma, para iniciar un servicio:

# systemctl start nombre.servicio
Para detener un servicio:
# systemctl stop nombre.servicio
Para activar el servicio durante el arranque:
# systemctl enable nombre.servicio

Deja un comentario