jueves, 29 de octubre de 2015

El systemd, y otras curiosidades

Systemd es el nuevo sistema de inicio, diseñado hacia 2010, que adoptó Debian (y otras distros) desde su versión Jessie. Creo que en Ubuntu están ahora en ello (v. 15.10). Parece ser que tiene ventajas sobre el antiguo sistema 'init', basado en UNIX, y su concepto se puede ver bastante bien en la Wikipedia (bueno, al menos lo que se dice en el primero y segundo párrafos, el resto… para los estudiosos)
Por cierto, como primera curiosidad, ya que hablamos de 'demonios', un gran bloguero (de un gran Blog) explicaba aquí, y de forma muy simpática, el error que se arrastra desde siempre porque los 'daemons' no son demonios, sino 'démones', unos seres benevolentes mitológicos. Esto, que quede como 'apunte cultural' l¿no? Y volvamos al tema del systemd
Desde luego, lo que no pretendo aquí es dar una lección magistral, primero porque no soy maestro de nada y segundo, porque solo pretendo lo dicho en el título, anotar algunas curiosidades.
Recomiendo (ya que hoy estoy 'buceando' en otras fuentes), que el que quiera profundizar el el tema puede dirigirse a aquí, que es un foro clásico de Debian… pero que a mi me viene muy grande, hay demasiado 'frikismo' en él.
Pero... ¿Ya tengo el systemd...?

Bien, si quieres saber si tu distro ya usa systemd, basta hacer un
aptitude show systemd
y ver si está instalado. Y, además, podemos comprobar que ya no está instalado el sistema anterior con…
aptitude show sysvinit-core

Los logs de systemd
Este puede ser otro tema interesante: el sistema de registro de eventos del systemd se llama, ahora, 'journal'.
Pero el problema es que, por defecto, la configuración de estos demonios, o démones (ya sabes que la 'd' final significa que es un 'daemon'), el systemd-journald.service, que se encuentra en /etc/systemd/journald.conf) es con 'storage=auto', que significa que hay que crear, manualmente, la carpeta 'journal' donde se van a registrar, que se ubicará en /var/log
Así que hay que abrir /var/log/ 'con permisos administrativos' (que es una opción de nemo) y Archivo - crear una carpeta nueva… journal. O bien, simplemente, desde consola de root….
# mkdir -p /var/log/journal
Y ya está.
Bueno, falta una cosa: si hemos creado esa carpeta journal, para que se guarden de forma permanente los eventos que registra journald, nos puede interesar controlar que no crezca demasiado. Esto se hace editando el archivo /etc/systemd/journald.conf, como root, claro,...
# nano /etc/systemd/journald.conf
y, en la línea correspondiente, añadimos 100M, para que quede así:
SystemMaxUse=100M
y limitaremos su tamaño a 100MB
Y, a partir de ahí, escribiendo, en consola, el comando…
journalctl … veremos todos los reportes del log, empezando por el más antiguo
journalctl -f … mostrará las últimas entradas
journalctl -b … idem las entradas del booteo actual
Bueno, y etcétera. Otra tema, naturalmente, es interpretarlo.

Controlar los tiempos de arranque
Si introducimos la orden, por consola…
systemd-analyze
nos dice los tiempos de carga del sistema: kernel, por un lado, y requerimientos de usuario, por otro.
Nota importante: yo entiendo que este tiempo es el que transcurre desde que arranca la elección, en el GRUB, hasta que sale el Display Manager, donde debemos elegir usuario, e incluso entorno gráfico. Así que el arranque tiene, además, dos tiempos adicionales, que aquí no se contemplan: uno, desde arrancar el PC hasta que aparece el GRUB (que es bastante corto, del orden de unos 10 seg.) y otro, el que va, desde que metemos la contraseña de usuario y damos al ENTER, hasta que aparece el escritorio del entorno elegido… que puede ser largo, dependiendo del entorno, los iconos, la potencia de nuestra gráfica y nuestro ordenador, etc.

Pero volviendo a ese tiempo (intermedio) de arranque: ¿lo quieres con más detalle? Pues el comando
systemd-analyze blame
te ofrece un listado de lo que dura la carga de cada proceso, ordenado de mayor a menor. Pero OJO, hay que aclarar que muchos de los procesos se ejecutan 'en paralelo'.
Por eso es interesante este otro comando:
systemd-analyze plot >grafico.svg
que crea, donde se haya abierto la consola, una imagen en formato 'svg' (Scalable Vector Graphics, y por tanto absolutamente redimensionable) con el 'planning' de las secuencias. Un ejemplo puede ser este (de mi propio PC)

En fin que, como digo, esta es una entrada de 'curiosidades', porque naturalmente no me voy a meter con ello. Pero viene bien guardar estas 'curiosidades' dentro de mis 'apuntes tácticos', por lo menos para que no se me olvide el concepto.
Y, para más información, quizás sea interesante añadir un enlace a la Wiki de ArchLinux. Por ejemplo, este:
https://wiki.archlinux.org/index.php/Improve_boot_performance_(Espa%C3%B1ol)

No hay comentarios:

Publicar un comentario