systemd-resolve alto uso da CPU após a atualização para 17.04

28

Recentemente, atualizei meu Xubuntu de 16.10 para 17.04.

Tudo funciona bem, exceto systemd-resolve. algumas vezes, torna o uso da CPU muito alto e não sei por que esse problema ocorreu.

E aqui está a topsaída do comando:

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                               
  1114 systemd+  20   0   51532   6744   4504 R   100  0.0   9:51.67 systemd-resolve                       
  1152 dnsmasq   20   0   64360   2892   2480 R  38.9  0.0   4:05.53 dnsmasq                               
  1245 root      20   0  376644  89644  64436 S   1.7  0.5   0:35.69 Xorg                                  
  1624 asus      20   0  370160  45820  28488 S   0.7  0.3   0:00.90 python2                               
  2238 asus      20   0 2562816 553112 128492 S   0.7  3.4   2:41.20 firefox                               
    16 root      20   0       0      0      0 S   0.3  0.0   0:01.05 ksoftirqd/1                           
   708 root     -51   0       0      0      0 S   0.3  0.0   0:01.20 irq/95-ELAN1000                       
  1302 root     -51   0       0      0      0 S   0.3  0.0   0:03.68 irq/142-nvidia                        
  1734 asus      20   0  483388  11060   8560 S   0.3  0.1   0:05.45 conky                                 
  2820 root      20   0       0      0      0 S   0.3  0.0   0:00.14 kworker/5:1                           
  3420 asus      20   0   53384   3932   3200 R   0.3  0.0   0:00.76 top                                   

Não sei por que esse problema aconteceu, mas geralmente ocorre quando alguns comandos são executados sudo apt update.

(Estou usando tor e obfs4proxy, pode ser útil para resposta)

Ali Razmdideh
fonte

Respostas:

36

Eu tive um conflito semelhante entre systemd-resolve e dnsmasq na porta 53.

/unix/304050/how-to-avoid-conflicts-between-dnsmasq-and-systemd-resolved

e

https://github.com/systemd/systemd/pull/4061

levou-me a acrescentar DNSStubListener=noem /etc/systemd/resolved.confe depois sudo service systemd-resolved restart.

MetricMike
fonte
5
Isso funcionou, mas eu não tinha DNS e não podia acessar sites por nome.
abalter
@abalter Meu problema foi especificamente um loop entre systemd-resolve e dnsmasq, então desativar um funcionou para mim. Se você ainda está tendo esse problema, ficaria curioso para saber como é sua topaparência e se isso revela um loop entre o systemd-resolve e outro utilitário.
MetricMike 20/09
Sim, isso resolvedfaz o mesmo que dnsmasq? Devemos desativar um deles para sempre? Porque ele realmente não faz sentido ter dois resolvedores DNS locais (eu ainda não estou convencido de que cerca de um TBH mas eu decidi ir com o fluxo e não personalizar a minha config)
Ivan Anishchuk
omg ... isso foi tão bom. o silenciamento do meu ventilador da cpu no instante em que reiniciei o systemd-resolved ... mas agora o chrome parece estar chegando a 100?
Jonny Asmar
1
Sim - esta solução parecia ter efeitos colaterais indesejáveis ​​(incluindo matar thunderbird) ... Veja a resposta abaixo do markackerman para saber o truque que funcionou para mim.
Jonny Asmar
24

Problemas causados ​​com outros aplicativos (teamViewer no meu caso)

Sugerido por outras etapas da solução

Adicione a linha DNSMASQ_EXCEPT=loa/etc/default/dnsmasq

sudo nano /etc/default/dnsmasq

Reinicie o dnsmasq via

sudo service systemd-resolved restart

Diga obrigado Se eu ajudei, ele voltou ao normal e NÃO se atrapalha com outros aplicativos, como o método anterior fez.

Cheers, Mark

markackerman8-gmail.com
fonte
1
sudo nanonão é o caminho para editar configurações, sudoeditdeve ser usado. E systemctlé a maneira de reiniciar os serviços com o systemd. Acima de tudo, não funciona para mim, ainda vejo 100% de uso da CPU.
Ivan Anishchuk
E isso não desativa efetivamente o dnsmasq? Por que não desativá-lo completamente, então?
Ivan Anishchuk
@IvanAnishchuk você está meio certo. Desativa o mecanismo DNS do DNSMasq, mas também possui um mecanismo DHCP.
Moshe
10

O systemd-resolved fica louco quando alguém modifica o arquivo /etc/resolv.conf, o que significa que ele está apontando para seu próprio endereço de escuta 127.0.0.53.

Que alguém possa ser qualquer script acionado por eventos de rede (VPN subindo ou descendo, DHCP, etc.)

Se você definir o servidor de nomes novamente para 127.0.0.53, o systemd-resolved "se acalmará" alguns segundos depois.

Supondo que todos estejam respeitando as regras e usando apenas o resolvconf para modificar a configuração do resolvedor, você também pode fazer isso:

O arquivo /etc/resolvconf/interface-orderespecifica a ordem na qual os servidores de nomes serão usados, dependendo da interface de rede da qual foram recebidos.

Se você adicionar uma entrada systemd-resolvedna parte superior do arquivo, ela sempre será considerada primeiro e o arquivo não será modificado.

xalkina
fonte
2
Então, as duas respostas acima acabaram falhando comigo no final. Mas este se comportou exatamente como previsto. Reverti meu resolv.conf (o servidor de nomes foi definido como 127.0.0.1 por algum motivo). Nem precisava reiniciar o systemd e as coisas pararam novamente. Observando meus processos agora, o dnsmasq está fora do radar novamente, onde deveria estar! ESTA deve ser a resposta aceita. Obrigado @xalkina!
Jonny Asmar
1
Esse problema parece retornar após uma reinicialização ... Alguma idéia do que estaria modificando o meu resolv.conf?
Jonny Asmar
1
Esta solução funciona para mim também (enquanto os dois acima não)
Alex Hoppus
2

Eu tive o mesmo problema em 18.04. systemd-resolvede dnsmasqtendem a fazer um loop. Eu resolvi assim:

Adicione ou remova o comentário da seguinte linha /etc/default/dnsmasq:

IGNORE_RESOLVCONF=yes

Crie seu próprio resolvarquivo ( /etc/resolv.personal) para definir servidores de nomes. Você pode usar qualquer servidor de nomes aqui. Eu peguei dois do OpenNIC .

nameserver 5.132.191.104
nameserver 103.236.162.119

Em /etc/dnsmasq.confadição ou descomente a seguinte linha:

resolv-file=/etc/resolv.personal

Em seguida, reiniciar dnsmasqe desativar o resolvedor padrão: systemd-resolved.

sudo service dnsmasq restart
sudo systemctl stop systemd-resolved
sudo systemctl disable systemd-resolved
Daniel Pernold
fonte