Haga que Linux arranque más rápido deshabilitando servicios innecesarios

Haga que Linux arranque más rápido deshabilitando servicios innecesarios

Cada vez más sistemas operativos se inflan con muchos servicios que se ejecutan en segundo plano. Si bien es posible que no usen mucho tiempo de CPU, aumentan el tiempo de arranque y el uso de RAM.

Algunas distribuciones de Linux incluyen «todo menos el fregadero de la cocina», en un esfuerzo por facilitar la vida del usuario. Esto hace que cosas como compartir archivos o imprimir funcionen de inmediato. Desafortunadamente, la única forma de hacer esto es incluir cientos de utilidades para que todos encuentren algo que necesitan.

Sin embargo, afortunadamente, los sistemas operativos de código abierto le brindan el poder y la libertad de hacer lo que mejor le parezca. Esto significa que puede deshabilitar o eliminar cualquier cosa que no necesite. La primera opción, cómo deshabilitar los servicios, se explorará aquí. Cuando desactiva, en lugar de eliminar, los componentes, hay menos riesgo de romper cosas de forma permanente. Y puede volver a ser como era antes simplemente volviendo a habilitar un servicio si nota que algo útil dejó de funcionar.

Analice el tiempo que tarda cada servicio en cargarse

La mayoría de los sistemas operativos basados ​​en Linux han migrado a Systemd. Entre la suite de utilidades que incluye, hay un programa que te permite analizar qué tan rápido arranca tu sistema. En concreto, te muestra el tiempo total necesario para arrancar y el tiempo que tarda en cargarse cada servicio. Tenga en cuenta que algunos servicios se cargan en paralelo. Entonces, si uno requiere dos segundos para cargar y el otro tres segundos, no significa necesariamente que se requieran cinco segundos en total. Puede ser mucho menos que eso.

Abra un emulador de terminal e ingrese este comando:

systemd-analizar-hora de inicio

Esto muestra cuánto tardan en cargarse el kernel de Linux y los servicios del sistema base, lo que significa que no tiene en cuenta el tiempo que necesita su interfaz gráfica para arrancar. Para decirlo de otra manera, esto le muestra cuánto tiempo se requiere, desde el momento en que se carga el kernel hasta que se lo coloca en la consola de Linux, que se parece a lo que se muestra a continuación.

systemd-analizar-consola

Si no tuviera una interfaz gráfica instalada, esto es lo que le daría la bienvenida en su pantalla.

Sin embargo, también puede ver el tiempo requerido por la interfaz gráfica para inicializar con este comando:

systemd-analyze critical-chain graphical.target

systemd-analyze-graphical-target

Esto muestra que la interfaz gráfica de usuario se cargó en 2.126 segundos. Esto no tiene en cuenta el tiempo necesario para cargar las utilidades de escritorio. Para habilitarlos o deshabilitarlos, inicie el administrador de inicio de su entorno de escritorio.

Finalmente, probablemente el comando más útil para este tutorial es:

systemd-analizar-culpa

Puede navegar por la lista con las teclas de flecha o RE PÁGINA y AV PÁGINA. Presione q para salir.

Use systemctl para deshabilitar servicios innecesarios

Como puedes ver en la imagen anterior, el servicio snapd tarda 1.295 segundos en cargarse. En un SSD, esto es insignificante. Pero en un disco duro, este tipo de tiempos serían del orden de varios segundos, y sumarían mucho al final. Además, en un SSD muchas cosas se cargan en paralelo con una eficiencia increíble. En un disco duro es muy difícil que los servicios se carguen en paralelo. Los cabezales de lectura que flotan en los platos del disco tienen que moverse de un sector a otro, por lo que es casi imposible leer realmente los datos en paralelo.

Para simplificar, imagine esto: si en un SSD ve cinco servicios que requieren un segundo para iniciarse, es probable que el tiempo total requerido para cargarlos todos sea inferior a 1,2 segundos. Si, en un disco duro, ve que los mismos cinco servicios se inicializan en un segundo, es probable que el tiempo total de carga supere los cinco segundos.

Digamos que no necesita el servicio snapd, que brinda acceso a instantáneas de aplicaciones en contenedores. Puedes desactivarlo con este comando:

sudo systemctl disable snapd.service

Pero, si reinicia, notará que el demonio de complemento aún se está ejecutando. Esto se debe a que otras dependencias pueden iniciarlo, incluso si está deshabilitado. Prueba a ver cuáles pueden ser:

systemd-analyze blame | grep snap

systemd-analizar-grep-snap

snapd.seeded.service y snapd.socket son los culpables aquí. Un servicio secundario puede solicitar el lanzamiento de su servicio principal. Cuando deshabilita uno, simplemente dígale que no se inicie automáticamente en el arranque por sí mismo. Pero hay un método de fuerza bruta para solucionar este problema.

Use systemctl para enmascarar un servicio

sudo systemctl mask snapd.service

Básicamente, esto hace que el archivo de servicio sea nulo para que las aplicaciones no tengan forma de iniciar el servicio.

En la mayoría de los casos, no es tan complicado deshabilitar un servicio. Este ejemplo ha sido elegido para mostrarle cómo lidiar con escenarios más complicados. En este caso, snapd.seeded.service y snapd.socket también debe estar deshabilitado o enmascarado.

A continuación se muestra el tiempo de arranque mejorado.

systemd-analyze-improved-boot-time

Conclusión

De 4.078, el tiempo de arranque se redujo a 3.452 segundos, lo que equivale a una disminución de ~15 %. No está mal, considerando que solo se deshabilitó un servicio, y esto está en un SSD. En un disco duro es mucho más fácil obtener resultados mucho más significativos.

En este ejemplo en particular, se podrían haber deshabilitado más servicios con un comando como: sudo systemctl mask avahi-daemon.service ModemManager.service thermald.service pppd-dns.service.

Si prefieres una aplicación gráfica para gestionar tus servicios, puedes echar un vistazo a la Administrador de sistema proyecto. Sin embargo, estará limitado en lo que puede hacer con él, ya que la línea de comando ofrece mucha más flexibilidad.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Experto Geek - Tu Guía en Tendencias Tecnológicas