Búsqueda de sitios web

systemd-analyze: busque estadísticas de rendimiento de arranque del sistema en Linux


¿Está utilizando systemd system and service manager y su sistema Linux tarda más en iniciarse o simplemente desea ver los informes del rendimiento de inicio de su sistema? En caso afirmativo, ha llegado al lugar correcto.

En este artículo, le mostraremos cómo analizar las estadísticas de rendimiento de arranque de un sistema Linux utilizando systemd-analyze, una de las numerosas utilidades de systemd para la administración del sistema.

Lea también: Cómo controlar los servicios Systemd en un servidor Linux remoto

Para obtener una descripción general del tiempo de inicio del sistema, podemos ejecutar el comando systemd-analyze sin ningún argumento de la siguiente manera. Enumerará información sobre cuánto tiempo tardó cada servicio en iniciarse, lo que incluye el tiempo que tardó el kernel, initrd y el espacio de usuario durante el arranque.

systemd-analyze

Startup finished in 884ms (kernel) + 3.861s (initrd) + 48.356s (userspace) = 53.102s

Si desea ver una lista de todas las unidades en ejecución, ordenadas por el tiempo que tardaron en inicializarse (el tiempo más alto en la parte superior), el subcomando de culpa se utiliza para este propósito. Después de ejecutar el siguiente comando, use [Enter] para ver más servicios en la lista y q para salir.

systemd-analyze blame 
         16.159s mariadb.service
         12.178s libvirtd.service
         10.298s tuned.service
          9.836s postfix.service
          8.704s lsws.service
          7.352s lscpd.service
          4.988s [email 
          4.779s NetworkManager-wait-online.service
          4.577s lvm2-monitor.service
          4.439s ModemManager.service
          4.413s polkit.service
          4.280s dev-sda1.device
          4.225s systemd-udev-settle.service
          3.957s firewalld.service
          3.227s rhel-dmesg.service
          3.221s abrt-ccpp.service
          3.142s rsyslog.service
          3.053s avahi-daemon.service
          3.042s pure-ftpd.service
          2.249s gssproxy.service
          2.212s NetworkManager.service
          1.889s proc-fs-nfsd.mount
          1.780s systemd-tmpfiles-setup-dev.service
          1.451s sshd.service
          1.267s rhel-readonly.service
          1.035s sysstat.service
          1.001s rpc-statd-notify.service
           910ms systemd-logind.service
           739ms kdump.service
           738ms network.service
...

Como puede ver en el resultado anterior que cada unidad se clasifica según el tiempo necesario, puede simplemente averiguar qué servicio está tardando más mientras se inicia y analizar el problema.

A continuación, también podemos ver un árbol de la cadena de tiempo crítico para el objetivo predeterminado o una lista de unidades especificadas con el subcomando de cadena crítica como se muestra.

systemd-analyze critical-chain  
The time after the unit is active or started is printed after the "@" character.
The time the unit takes to start is printed after the "+" character.

multi-user.target @48.342s
└─mariadb.service @31.560s +16.159s
  └─network.target @31.558s
    └─network.service @30.819s +738ms
      └─NetworkManager-wait-online.service @26.035s +4.779s
        └─NetworkManager.service @23.821s +2.212s
          └─network-pre.target @23.821s
            └─firewalld.service @19.863s +3.957s
              └─polkit.service @15.381s +4.413s
                └─basic.target @12.271s
                  └─sockets.target @12.271s
                    └─virtlockd.socket @12.270s
                      └─sysinit.target @12.251s
                        └─systemd-update-utmp.service @12.196s +54ms
                          └─auditd.service @11.705s +486ms
                            └─systemd-tmpfiles-setup.service @11.609s +93ms
                              └─rhel-import-state.service @11.397s +211ms
                                └─local-fs.target @11.363s
                                  └─run-user-0.mount @46.910s
                                    └─local-fs-pre.target @10.575s
                                      └─lvm2-monitor.service @5.996s +4.577s
                                        └─lvm2-lvmetad.service @7.376s
                                          └─lvm2-lvmetad.socket @5.987s
                                            └─-.slice
systemd-analyze critical-chain ntp.service networking.service

Finalmente, veamos un subcomando más importante que permite producir detalles gráficos (formato SVG) de los servicios del sistema que se han iniciado y a qué hora, resaltando su tiempo de inicialización, de la siguiente manera.

Asegúrese de que el modo de visualización gráfica o x-windows esté habilitado para poder ver el gráfico.

systemd-analyze plot > boot_analysis.svg
xviewer boot_analysis.svg  

Todos los comandos anteriores imprimirán las estadísticas de rendimiento de arranque de la máquina local. Para ver información de un host remoto a través de ssh, use el indicador -H y especifique la directiva nombredeusuario@host, como se muestra.

systemd-analyze time -H [email 
systemd-analyze blame -H [email 
systemd-analyze critical-chain -H [email 

systemd-analyze también se puede utilizar para encontrar otra información de estado y de seguimiento del sistema y systemd (administrador de servicios) y más. Para obtener más información, consulte su página de manual.

man systemd-analyze 

Lea también: Cómo cambiar los niveles de ejecución (objetivos) en SystemD

¡Eso es todo por ahora! Si tiene alguna pregunta o idea que compartir, utilice el formulario de comentarios a continuación para comunicarse con nosotros.