arranque lento de systemd - systemd-tmpfiles-setup

arranque lento de systemd - systemd-tmpfiles-setup

Recientemente actualicé a Debian jessie (prueba actual) y después de eso, el tiempo de arranque promedio aumentó a 3-4 minutos.

Entre el inicio gruby gdmel inicio, recibo este mensaje durante 2 o 3 minutos.

A job is running for creating volatile and temporary files and directories

Aquí está la salida desystemd-analyze blame

[smit: ~] $ systemd-analyze blame 
    3min 14.096s systemd-tmpfiles-setup.service
          8.657s NetworkManager.service
          8.244s apache2.service
          7.048s ModemManager.service
          6.328s networking.service
          6.004s accounts-daemon.service
          5.288s binfmt-support.service
          4.557s systemd-logind.service
          4.541s alsa-restore.service
          4.541s console-kit-log-system-start.service
          4.530s lm-sensors.service
          4.521s pppd-dns.service
          4.520s redis-server.service
          4.519s hostapd.service
          4.519s minissdpd.service
          4.519s timidity.service
          4.519s nvidia-kernel.service
          4.518s rc-local.service
          4.437s bluetooth.service
          4.408s avahi-daemon.service
          2.243s systemd-fsck-root.service
          1.437s exim4.service
          1.415s keyboard-setup.service

Una vez que se inicia el sistema, systemctlno informa ningún error.

[smit: ~] $ sudo systemctl status systemd-tmpfiles-setup
● systemd-tmpfiles-setup.service - Create Volatile Files and Directories
   Loaded: loaded (/lib/systemd/system/systemd-tmpfiles-setup.service; static)
   Active: active (exited) since Fri 2014-10-17 01:19:09 IST; 1h 41min ago
     Docs: man:tmpfiles.d(5)
           man:systemd-tmpfiles(8)
  Process: 230 ExecStart=/bin/systemd-tmpfiles --create --remove --boot --exclude-prefix=/dev (code=exited, status=0/SUCCESS)
 Main PID: 230 (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/systemd-tmpfiles-setup.service

¿Por qué el arranque es systemd-tmpfiles-setup.servicelento? ¿Dónde puedo obtener registros detallados de systemd-tmpfiles-setup.service?

Respuesta1

Cuando systemd inicia un sistema, una de las primeras unidades de servicio que se inicia es systemd-tmpfiles-setup. Este servicio ejecuta el comando:

# systemd-tmpfiles --create --remove 

Este comando lee archivos de configuración de (menos relevantes primero):

  • /usr/lib/tmpfiles.d/*.conf- estos archivos los proporciona el paquete RPM correspondiente y el administrador del sistema no debe editarlos.
  • /run/tmpfiles.d/*.conf- Estos archivos normalmente son utilizados por demonios para administrar sus propios archivos temporales de tiempo de ejecución.
  • /etc/tmpfiles.d/*.conf- Estos archivos están destinados a que los administradores de sistemas configuren ubicaciones temporales personalizadas y anulen los valores predeterminados proporcionados por el proveedor.

También hay tres lugares donde se almacenan los archivos temporales:

  • /var- Datos variables específicos de este sistema que deben persistir entre arranques.
  • /correr- Datos de tiempo de ejecución de los procesos iniciados desde el último arranque. Esto incluye archivos de identificación de procesos y archivos de bloqueo, entre otras cosas. El contenido de este directorio se recrea al reiniciar.
  • /tmp- Un espacio de escritura mundial para archivos temporales. Los archivos a los que no se haya accedido, cambiado o modificado durante 10 días se eliminan automáticamente. Existe otro directorio temporal en /var/tmp en el que los archivos a los que no se ha accedido, cambiado o modificado en más de 30 días se eliminan automáticamente.

Resumiendo:
Verifique los archivos de configuración de tmp para ver por qué la configuración de tmp lleva tanto tiempo, especialmente tenga en cuenta las entradas en el directorio /run porque se recrea en el momento del arranque.

Respuesta2

Esto se debe a que Chrome Beta y Cups tuvieron problemas al crear millones de archivos en /tmp. Si /tmp es un tmpfs para usted, intente desmontarlo y volver a montarlo. De lo contrario, rm -rf /tmp luego vuelva a crearlo.

Respuesta3

systemd-tmpfiles se inicia antes que la red, por lo que dependiendo de su configuración, es posible que uno de los archivos de configuración de systemd-tmpfiles (ubicado en /usr/lib/tmpfiles.d) esté intentando crear un directorio para un usuario o grupo que solo está disponible en el sistema una vez que la red está activa, como un usuario o grupo definido en LDAP.

Si ese es el caso, debería intentar mover systemd-tmpfiles-setup.service para que se inicie después de la red.

información relacionada