inicialização lenta do systemd - systemd-tmpfiles-setup

inicialização lenta do systemd - systemd-tmpfiles-setup

Recentemente atualizei para o debian jessie (teste atual) e depois disso o tempo médio de inicialização aumentou para 3-4 minutos.

Entre grube gdmcomeço, recebo esta mensagem por 2 a 3 minutos.

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

Aqui está a saída 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

Depois que o sistema é iniciado, systemctlnão relata nenhum erro.

[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 que systemd-tmpfiles-setup.servicecomeçar devagar? Onde posso obter registros detalhados de systemd-tmpfiles-setup.service?

Responder1

Quando o systemd inicia um sistema, uma das primeiras unidades de serviço iniciadas é systemd-tmpfiles-setup. Este serviço executa o comando:

# systemd-tmpfiles --create --remove 

Este comando lê arquivos de configuração (menos relevantes primeiro):

  • /usr/lib/tmpfiles.d/*.conf- esses arquivos são fornecidos pelo pacote RPM relevante e não devem ser editados pelo administrador do sistema.
  • /run/tmpfiles.d/*.conf- esses arquivos são normalmente usados ​​por daemons para gerenciar seus próprios arquivos temporários de tempo de execução
  • /etc/tmpfiles.d/*.conf- esses arquivos destinam-se ao sysadmis para configurar locais temporários personalizados e substituir o padrão fornecido pelo fornecedor

Também existem três locais onde os arquivos temporários são armazenados:

  • /var- Dados variáveis ​​específicos deste sistema que devem persistir entre inicializações
  • /correr- Dados de tempo de execução para processos iniciados desde a última inicialização. Isso inclui arquivos de ID de processo e arquivos de bloqueio, entre outras coisas. O conteúdo deste diretório é recriado na reinicialização.
  • /tmp- Um espaço de gravação mundial para arquivos temporários. Arquivos que não foram acessados, alterados ou modificados por 10 dias são excluídos automaticamente. Existe outro diretório temporário em /var/tmp no qual os arquivos que não foram acessados, alterados ou modificados em mais de 30 dias são excluídos automaticamente.

Resumindo:
verifique os arquivos de configuração do tmp para ver por que a configuração do tmp demora tanto, especialmente observe as entradas no diretório /run porque ele é recriado no momento da inicialização.

Responder2

Isso ocorre porque o Chrome beta e o cups tiveram problemas ao criar milhões de arquivos em/tmp. Se /tmp for um tmpfs para você, tente desmontá-lo e remontá-lo. Caso contrário, rm -rf /tmp recrie-o.

Responder3

systemd-tmpfiles inicia antes da rede, portanto, dependendo da sua configuração, é possível que um dos arquivos de configuração systemd-tmpfiles (localizados em /usr/lib/tmpfiles.d) esteja tentando criar um diretório para um usuário ou grupo que só estará disponível no sistema quando a rede estiver ativa, como um usuário ou grupo definido no LDAP.

Se for esse o caso, você deve mover systemd-tmpfiles-setup.service para iniciar após a rede.

informação relacionada