systemd-risolvere l'utilizzo elevato della cpu dopo l'aggiornamento a 17.04


28

Di recente ho aggiornato il mio Xubuntu dal 16.10 al 17.04.

Tutto funziona bene tranne systemd-resolver. alcune volte rende l'utilizzo della CPU troppo elevato e non so perché questo problema sia stato risolto.

Ed ecco l' topoutput del 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                                   

Non so perché questo problema si sia verificato, ma di solito si verifica quando si eseguono alcuni comandi come sudo apt update.

(Sto usando tor e obfs4proxy, potrebbe essere utile per la risposta)

Risposte:


36

Ho avuto un conflitto simile tra systemd-resolver e dnsmasq sulla porta 53.

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

e

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

mi ha portato per aggiungere DNSStubListener=noin /etc/systemd/resolved.confe poi sudo service systemd-resolved restart.


5
Funzionava, ma non avevo DNS e non potevo accedere ai siti web per nome.
abalter

@abalter Il mio problema era specificamente un ciclo tra systemd-resolver e dnsmasq, quindi disattivarne uno ha funzionato per me. Se il problema persiste, sarei curioso di topsapere come appare e se invece rivela un ciclo tra systemd-resolver e un'altra utility.
MetricMike,

Sì, fa resolvedla stessa cosa di dnsmasq? Dovremmo disabilitarne uno per sempre? Perché non ha davvero senso avere due resolver dns locali (non sono ancora convinto di un TBH ma ho deciso di seguire il flusso e non personalizzare la mia configurazione)
Ivan Anishchuk,

Oh mio Dio ... è stato così bello. il silenziamento del mio fan della cpu nell'istante in cui ho riavviato systemd-risolto ... ma ora Chrome sembra essere al 100%?
Jonny Asmar,

1
Sì - questa soluzione sembra avere effetti collaterali indesiderati (incluso uccidere un tuono) ... Vedi la risposta sotto di Markackerman per il trucco che ha funzionato per me.
Jonny Asmar,

24

Problemi causati con altre app (teamViewer nel mio caso)

Suggerito da altri passaggi della soluzione

Aggiungi la linea DNSMASQ_EXCEPT=loa/etc/default/dnsmasq

sudo nano /etc/default/dnsmasq

Riavvia dnsmasq tramite

sudo service systemd-resolved restart

Di 'grazie Se ho aiutato, è tornato alla normalità e NON si rovina con altre app, come il metodo precedente DID.

Saluti, Mark


1
sudo nanonon è il modo di modificare le configurazioni, sudoeditdovrebbe invece essere usato. Ed systemctlè il modo di riavviare i servizi con systemd. Soprattutto, non funziona per me, vedo ancora l'utilizzo della CPU al 100%.
Ivan Anishchuk,

E questo non disabilita efficacemente dnsmasq? Perché non disabilitarlo completamente allora?
Ivan Anishchuk,

@IvanAnishchuk hai ragione. Disabilita il meccanismo DNS di DNSMasq ma ha anche un meccanismo DHCP.
Moshe,

10

systemd-resolved diventa pazzo quando qualcuno modifica il file /etc/resolv.conf, che dovrebbe indicare il proprio indirizzo di ascolto 127.0.0.53.

Che qualcuno potrebbe essere qualsiasi script attivato da eventi di rete (VPN in arrivo, inattivo, DHCP, ecc.)

Se ripristini il nameserver su 127.0.0.53, il sistema risolto si "calmerà" pochi secondi dopo.

Supponendo che tutti rispettino le regole e che utilizzino resolvconf solo per modificare la configurazione del resolver, è anche possibile:

Il file /etc/resolvconf/interface-orderspecifica l'ordine in cui verranno utilizzati i nameserver, a seconda dell'interfaccia di rete da cui sono stati ricevuti.

Se aggiungi una voce systemd-resolvednella parte superiore del file, verrà sempre considerata per prima e il file non verrà modificato.


2
Quindi, entrambe le risposte sopra hanno finito col fallirmi alla fine. Ma questo si è comportato esattamente come previsto. Ripristinato il mio resolv.conf (per qualche motivo il nameserver era impostato su 127.0.0.1). Non è nemmeno necessario riavviare systemd e le cose si sono chiuse di nuovo. Guardando i miei processi ora, dnsmasq è di nuovo fuori dal radar, dove dovrebbe essere! QUESTA dovrebbe essere la risposta accettata. Grazie @xalkina!
Jonny Asmar,

1
Questo problema sembra tornare dopo un riavvio ... Qualche idea su cosa sarebbe modificare il mio resolv.conf?
Jonny Asmar,

1
Questa soluzione funziona anche per me (mentre i due precedenti no)
Alex Hoppus,

2

Ho avuto lo stesso problema nel 18.04. systemd-resolvede dnsmasqtendono ad andare in loop. L'ho risolto in questo modo:

Aggiungi o decommenta la seguente riga in /etc/default/dnsmasq:

IGNORE_RESOLVCONF=yes

Crea il tuo resolvfile ( /etc/resolv.personal) per definire i nameserver. Puoi usare qualsiasi nameserver qui. Ne ho presi due da OpenNIC .

nameserver 5.132.191.104
nameserver 103.236.162.119

In /etc/dnsmasq.confaggiunta o decommenta la seguente riga:

resolv-file=/etc/resolv.personal

Quindi riavviare dnsmasqe disabilitare il risolutore di default: systemd-resolved.

sudo service dnsmasq restart
sudo systemctl stop systemd-resolved
sudo systemctl disable systemd-resolved
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.