Cuando inicia su sistema, pasa por una secuencia de eventos antes de presentarle la pantalla de inicio de sesión. ¿Alguna vez ha comprobado cuánto tarda su sistema en arrancar? Generalmente, todo ocurre en segundos o unos pocos minutos, pero no sabemos la hora exacta. A veces, debido a algunas razones, es posible que deba encontrar el tiempo exacto que tarda su sistema en iniciarse. Independientemente de la razón por la que desee saberlo, existe una utilidad systemd-analyze que puede informarle el tiempo exacto que tarda su sistema Linux en iniciarse.
Aunque puede usar un reloj o un cronómetro para monitorear esta hora cuando su sistema comienza a arrancar, eso no es factible para todas las situaciones, especialmente para servidores en ejecución que difícilmente puede reiniciar. Por ejemplo, si tiene un servidor que ejecuta servicios críticos y necesita encontrar el tiempo que tarda su sistema en arrancar. En este caso, debe reiniciar el servidor, lo que no puede ser posible en todo momento.
En este artículo, aprenderá a averiguar cuánto tiempo tarda su sistema Linux en iniciarse y cómo reducir este tiempo si se inicia lentamente.
Nota :
- El procedimiento discutido en este artículo ha sido probado en Ubuntu 20.04 LTS. El mismo procedimiento se puede realizar en cualquier distribución de Linux con systemd habilitado.
- Para abrir la Terminal de línea de comando, use el atajo de teclado Ctrl+Alt+T.
¿Qué es systemd-analizar?
Systemd-analyze es una herramienta que se puede utilizar para conocer las últimas estadísticas de arranque del sistema. Con la herramienta systemd-analyze, puede encontrar información sobre cuánto tiempo tardó el sistema en iniciarse y también cuánto tiempo tardó cada unidad en iniciarse. Afortunadamente, no necesita instalar esta herramienta, ya que es una herramienta systemd integrada. Puede verificarlo usando el siguiente comando en la Terminal:
$ which systems-analyze
La salida mostrará la ruta completa del comando ejecutable.
Cómo encontrar el tiempo que tarda el sistema en arrancar
Para encontrar el tiempo que tarda el sistema en arrancar, simplemente escriba system-analyze sin ningún argumento de línea de comandos en la Terminal:
$ systemd-analyze
Cuando ejecuta el comando anterior, la herramienta systemd-analyze calcula el tiempo que tarda el sistema hasta que se completa el arranque, dividido en kernel y espacio de usuario.
Como puede ver en la captura de pantalla anterior, el tiempo total de arranque de nuestro sistema es de 32.378 s. segundos y se divide en:
- Núcleo:6.074 s
- Espacio de usuario:26.304 s
Investigar/solucionar problemas de arranque lento
Si el tiempo de arranque es mayor, debe encontrar qué servicio está ralentizando el proceso de arranque. Puede encontrarlo usando la culpa systemd-analyze dominio. Este comando enumera todos los servicios en ejecución que se iniciaron en el momento del arranque junto con el tiempo que tardaron. Con esta información, puede optimizar el tiempo de arranque del sistema.
Ejecute el siguiente comando en la Terminal para encontrar qué servicio tiene la culpa del lento proceso de arranque:
$ sudo systemd-analyze blame
Este comando enumera los servicios iniciados en el momento del arranque junto con el tiempo que tardó cada servicio en inicializarse. La lista está ordenada por el tiempo transcurrido en orden descendente.
La lista de culpables puede ser bastante larga, por lo general, las primeras 10 entradas son suficientes para encontrar los servicios que requieren mucho tiempo. Por lo tanto, canalice la salida del comando anterior al comando "head" de la siguiente manera:
$ sudo systemd-analyze blame | head
También puede imprimir la salida en forma de árbol de la cadena de eventos de tiempo crítico. Ejecute el siguiente comando en la Terminal para hacerlo:
$ systemd-analyze critical-chain
En el resultado, verá una cadena de eventos ordenados por hora (cuando el servicio se activó) en orden descendente. El valor después del carácter "@" en cada evento es el momento en que el servicio se activó. Mientras que el valor después del carácter "+" en cada unidad muestra el tiempo que tardó en iniciarse el servicio.
A partir del resultado que recibió de los comandos anteriores, puede averiguar fácilmente qué servicio tarda más en iniciarse y, a cambio, hacer que su sistema se inicie lentamente. Comience desde arriba y deshabilite los servicios que tardaron más en iniciarse, siempre que no sean necesarios para iniciarse en el arranque. Además, deshabilite todos los servicios que, aunque toman menos tiempo, no son necesarios en el arranque, ya que también afectan el tiempo de arranque del sistema.
Para deshabilitar cualquier servicio, use la siguiente sintaxis:
$ sudo systemctl disable service-name
¡Eso es todo! En este artículo, ha aprendido a utilizar la herramienta integrada systemd para averiguar el tiempo que tarda su sistema en arrancar. Si tarda más en arrancar, también puede encontrar los servicios responsables y deshabilitarlos para mejorar el tiempo de arranque. Sin embargo, tenga en cuenta que se requiere que algunos servicios predeterminados se inicien en el arranque, por lo que no se recomienda deshabilitar ningún servicio sin saber lo que realmente hace, de lo contrario, podría tener problemas.