Boo networking.service incrivelmente lento (5 minutos) Ubuntu 16.10

3

Uma imagem é melhor que muitas palavras, aqui está:

systemd-analyze blame :

A questão é por que demora 5 minutos para inicializar? E possivelmente como consertar isso?

    
por Alexandre Liscia 16.10.2016 / 17:59

3 respostas

3

Eu encontrei uma solução, embora talvez seja mais apropriado chamá-la de uma solução alternativa.

O problema é que o networking.service tem um tempo limite padrão de 5 minutos e, por qualquer motivo, o tempo limite total deve expirar antes que a inicialização continue. Então, a inicialização demora um pouco mais de 5 minutos.

A solução que encontrei é fazer o seguinte:

 sudo systemctl edit networking.service

Adicione a seguinte linha:

TimeoutStartSec=10sec

Eu ainda não faço ideia da causa raiz, e o que é exatamente esse tempo limite, mas reduzir o tempo limite de 5 para 10 segundos faz com que a inicialização seja executada rapidamente, por razões óbvias.

Aqui está um link para a minha solução nos fóruns do Ubuntu: link

Espero que ajude.

    
por Mark J. Bobak 13.11.2016 / 01:59
2

Edite / etc / network / interfaces e altere "auto" para interfaces para "permitir hotplug"

sudo nano /etc/network/interfaces

Exemplo: interface automática para cartão ethernet auto eth0 alteração para allow-hotplug eth0

Depois disso, para mim, "systemd-analyse blame" - > networking.service muda de 5 min para 41 s

    
por user3055379 26.02.2017 / 12:27
0

Pelo que encontrei, talvez seja apropriado encontrar uma causa subjacente melhor. No meu caso, parece ser systemd-networkd.service que está atrasando o processo e ainda mais é uma interface de rede específica que paralisa networkd.

Então, decidi por duas abordagens:

  1. Simplesmente cancele o tempo no systemd-networkd-wait-online.service depois de um tempo muito mais amigável. Isso pode ser feito editando / lib / systemd / system / systemd-networkd-wait-online e adicionando uma opção à linha ExecStart que chama o serviço. Simplesmente tempo limite mais rápido append --timeout = 10, para reduzir o tempo de espera para 10s. É 120S por padrão. No entanto, isso pode IMHO não ser a melhor abordagem, talvez seja fundamental que alguma interface está realmente disponível.

    ExecStart=/lib/systemd/systemd-networkd-wait-online --timeout=10
    
  2. Tente ignorar uma interface que você acha que pode ser a causa raiz. No meu caso, esse era um link sem fio não crítico que ainda não havia configurado corretamente. Ele foi definido no arquivo netplan yaml, mas eu ainda não tinha configurado o wpa_supplicant para instalá-lo e executá-lo como AP com IP, etc. Essa foi a dependência que causou o stall. Então, acrescentei --ignore = int_wlan0 à linha ExecStart. Com certeza, as interfaces de ethernet críticas surgiram muito rapidamente, mas a networkd estava esperando por algo mais do link da WLAN. Uma vez que o ignore estava em vigor, o bootup saltou diretamente no atraso de 2min.

    ExecStart=/lib/systemd/systemd-networkd-wait-online --ignore=int_wlan0
    

Isso faz algum sentido como "man systemd-networkd-wait-online.service" afirma que "ele irá esperar por todos os links de que esteja ciente e que são gerenciados pelo systemd-networkd.service (8) para ser totalmente configurado ou falhou ". O que o networkd considera totalmente configurado é uma questão em aberto. Parece que da minha configuração isso inclui ter um endereço IP, mas isso pode ser apenas um caso especial para links sem fio. Eu não sei. No entanto, essa correção fez as coisas rodarem muito mais rápido e, pelo menos, eu sei que a única dependência era o link sem fio.

    
por Aidan Walton 25.10.2018 / 16:45