Optimizando el Tiempo y Servicios de Arranque con SystemD

silexcorp's picture

Analizando el arranque

SystemD

      Systemd es un conjunto de demonios o daemons de administración de sistema, bibliotecas y herramientas diseñados como una plataforma de administración y configuración central para interactuar con el núcleo del Sistema operativo GNU/Linux y permite analizar y optimizar el arranque mediante las propias herramientas del propio Systemd.
Para analizar el arranque del sistema se utiliza el siguiente comando:

systemd-analyze time o systemd-analyze 

Al ejecutar el comando, mostrará el tiempo que emplearía el sistema en arrancar con la configuración actual, diferenciando de manera clara y por separado el tiempo correspondiente al kernel y al espacio de usuario:

silex:/home/lex # systemd-analyze time
Startup finished in 2.719s (kernel) + 2.446s (initrd) + 6.938s (userspace) = 12.104s
silex:/home/lex #

 Ahora se sabe cuál es el tiempo de arranque, y para optimizar y/o reducir el tiempo de arranque será necesario el uso de las opciones de systemd-analyze, además systemctl.
Para mostrar el listado detallado de los servicios que se inician al arrancar el sistema y su impacto en el arranque, se utiliza:

systemd-analyze blame

Al ejecutar el comando se mostrarán todos los servicios detalladamente:

Además para verificar los servicios que ralentizan el proceso, mediante el comando:

systemd-analyze blame | head

También verificar los servicios críticos mediante el comando:

systemd-analyze critical-chain

Otras opciones interesantes son plot y dot, que nos permiten realizar gráficos con toda la información anterior para que nos sea más sencillo procesarla de una manera más "visual".

El gráfico será devuelto en forma de imagen svg, así que a menos que queramos ver una enorme lista de puntos uno tras otros, tendremos que indicar también el archivo de destino donde irán a parar los datos:

systemd-analyze plot >> archivo-grafico.svg

El resultado es una imagen gigantesca con todos los servicios, sus tiempos y una serie de indicaciones que nos serán muy útiles para analizar los datos de systemd Analyze
Para el diagrama de puntos tendremos que ser incluso más específicos a la hora de crear el archivo svg y necesitaremos hacer uso de las herramientas del paquete  graphviz

systemd-analyze dot | dot -Tsvg > Archivo-diagrama.svg

Optimizando el arranque

Una vez que tengamos una idea clara de cómo es la secuencia de arranque de nuestro sistema, podemos ponernos manos a la obra para optimizarla.
 

Habilitando/deshabilitando servicios
Aunque no era mi intención en cuanto a métodos de optimización empezaré por lo más obvio y que seguramente todos tenemos ahora mismo rondando por nuestra cabeza, que viene siendo deshabilitar directamente algunos servicios que no necesitamos.
Esto es bastante sencillo, simplemente elegiremos aquellos demonios de la lista que nos ha devuelto el systemd-analyze que no queremos que sean cargados y, mediante el uso de systemctl, nos desharemos de ellos

 

systemctl disable demonio.service 

O, si por el contrario quisiéramos realizar el proceso inverso, es decir, habilitar un servicio

systemctl enable demonio.service 

Así con cada uno de los demonios con los que trabajemos.

 

Referencia:

www.freedesktop.org/software/systemd/man/systemd-analyze.html

https://gnulinuxvagos.es/topic/2122-optimizando-el-tiempo-y-servicios-de...

 

Comments