systemd-resolve hohe CPU-Auslastung nach Update auf 17.04

28

Ich habe kürzlich mein Xubuntu von 16.10 auf 17.04 aktualisiert.

Alles funktioniert gut, außer systemd-resolve. Manchmal ist die CPU-Auslastung zu hoch, und ich weiß nicht, warum dieses Problem aufgetreten ist.

Und hier ist die topBefehlsausgabe:

  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                                   

Ich weiß nicht, warum dieses Problem aufgetreten ist, aber normalerweise ist es aufgetreten, wenn einige Befehle wie ausgeführt wurden sudo apt update.

(Ich benutze tor und obfs4proxy, es kann hilfreich sein für die Antwort)

Ali Razmdideh
quelle

Antworten:

36

Ich hatte einen ähnlichen Konflikt zwischen systemd-resolve und dnsmasq auf Port 53.

https://unix.stackexchange.com/questions/304050/how-to-avoid-conflicts-inter-dnsmasq-and-systemd-resolved

und

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

führte mich fügen DNSStubListener=noin /etc/systemd/resolved.confund dann sudo service systemd-resolved restart.

MetricMike
quelle
5
Dies funktionierte, aber dann hatte ich kein DNS und konnte nicht namentlich auf Websites zugreifen.
Abalter
@abalter Mein Problem war speziell eine Schleife zwischen systemd-resolve und dnsmasq, also funktionierte es für mich, eine auszuschalten. Wenn Sie immer noch dieses Problem haben, wäre ich gespannt, wie Ihr topAussehen aussieht und ob dies eine Schleife zwischen systemd-resolve und einem anderen Dienstprogramm aufdeckt.
MetricMike
Ja, macht resolveddas dasselbe wie dnsmasq? Sollten wir eine davon endgültig deaktivieren? Weil es nicht wirklich Sinn macht, zwei lokale DNS-Resolver zu haben (ich bin immer noch nicht von einem TBH überzeugt, aber ich habe beschlossen, mit dem Fluss zu gehen und meine Konfiguration nicht anzupassen)
Ivan Anishchuk
omg ... das fühlte sich so gut an. die Stummschaltung meines CPU-Lüfters in dem Moment, in dem ich das System neu gestartet habe, ist behoben ... aber jetzt scheint Chrom auf 100 zu steigen?
Jonny Asmar
1
Ja - diese Lösung schien unerwünschte Nebenwirkungen zu haben (einschließlich des Tötens von Thunderbird) ... Siehe die folgende Antwort von Markackerman für den Trick, der bei mir funktioniert hat.
Jonny Asmar
24

Verursacht Probleme mit anderen Apps (TeamViewer in meinem Fall)

Vorgeschlagen von anderen Lösungsschritten

Fügen Sie die Zeile DNSMASQ_EXCEPT=lozu hinzu/etc/default/dnsmasq

sudo nano /etc/default/dnsmasq

Starten Sie dnsmasq über neu

sudo service systemd-resolved restart

Sag Danke Wenn ich geholfen habe, ging es wieder normal und schraubt NICHT mit anderen Apps herum, wie die vorherige Methode es getan hat.

Prost, Mark

markackerman8-gmail.com
quelle
1
sudo nanoist nicht die Möglichkeit, Konfigurationen zu bearbeiten, sudoeditsollte stattdessen verwendet werden. Und systemctlist der Weg, um Dienste mit systemd neu zu starten. Vor allem funktioniert es bei mir nicht, ich sehe immer noch eine 100% ige CPU-Auslastung.
Ivan Anishchuk
Und deaktiviert dies nicht effektiv dnsmasq? Warum es dann nicht komplett deaktivieren?
Ivan Anishchuk
@IvanAnishchuk Sie sind zur Hälfte richtig. Der DNS-Mechanismus von DNSMasq wird deaktiviert, es gibt jedoch auch einen DHCP-Mechanismus.
Moshe
10

systemd-resolved wird verrückt, wenn jemand die Datei ändert /etc/resolv.conf, die auf die eigene Abhöradresse 127.0.0.53 verweist.

Dies kann jedes Skript sein, das durch Netzwerkereignisse ausgelöst wird (VPN kommt hoch oder runter, DHCP usw.).

Wenn Sie den Nameserver auf 127.0.0.53 zurücksetzen, "beruhigt" sich "systemd-resolved" einige Sekunden später.

Vorausgesetzt, dass alle die Regeln einhalten und resolvconf nur zum Ändern der Resolver-Konfiguration verwenden, können Sie dies auch tun:

Die Datei /etc/resolvconf/interface-ordergibt die Reihenfolge an, in der Nameserver verwendet werden, abhängig von der Netzwerkschnittstelle, von der sie empfangen wurden.

Wenn Sie systemd-resolvedam Anfang der Datei einen Eintrag für hinzufügen , wird dieser immer zuerst berücksichtigt und die Datei wird nicht geändert.

xalkina
quelle
2
Also, beide Antworten oben haben mich letztendlich im Stich gelassen. Aber dieser verhielt sich genauso wie vorhergesagt. Die resolv.conf wurde zurückgesetzt (der Nameserver wurde aus irgendeinem Grund auf 127.0.0.1 gesetzt). Ich musste nicht einmal systemd neu starten und die Dinge wurden wieder beendet. Wenn ich jetzt meine Prozesse beobachte, ist dnsmasq wieder vom Radar verschwunden, wo es sein sollte! Dies sollte die akzeptierte Antwort sein. Vielen Dank, dass Sie @xalkina!
Jonny Asmar
1
Dieses Problem scheint nach einem Neustart zurückzukehren ... Irgendwelche Ideen, was meine ändern würde resolv.conf?
Jonny Asmar
1
Diese Lösung funktioniert auch für mich (während die beiden oben nicht)
Alex Hoppus
2

Ich hatte das gleiche Problem im 18.04. systemd-resolvedund dnsmasqneigen dazu, Schleife. Ich habe es so gelöst:

Fügen Sie die folgende Zeile hinzu oder kommentieren Sie sie aus /etc/default/dnsmasq:

IGNORE_RESOLVCONF=yes

Erstellen Sie Ihre eigene resolvDatei ( /etc/resolv.personal), um Nameserver zu definieren. Sie können hier einen beliebigen Nameserver verwenden. Ich habe zwei von OpenNIC genommen .

nameserver 5.132.191.104
nameserver 103.236.162.119

In /etc/dnsmasq.confAdd oder kommentieren Sie die folgende Zeile:

resolv-file=/etc/resolv.personal

Dann starten dnsmasqund die Standard - Resolver deaktivieren: systemd-resolved.

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