systemd-解决更新到17.04后的高CPU使用率

我最近将我的Xubuntu从16.10升级到17.04。

除了systemd-resolve之外,每件事情都运作良好。 有时它会使CPU使用率过高而且我不知道为什么会出现这个问题。

这是top命令输出:

  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 

我不知道为什么会出现这个问题,但通常在运行sudo apt updatesudo apt update时会发生这种情况。

(我正在使用tor和obfs4proxy,它可能对答案有帮助)

我在端口53上的systemd-resolve和dnsmasq之间有类似的冲突。

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

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

让我在/etc/systemd/resolved.conf添加DNSStubListener=no ,然后在sudo service systemd-resolved restart

导致其他应用程序出现问题(在我的情况下是teamViewer)

建议通过另一个解决方案步骤

将行DNSMASQ_EXCEPT=lo添加到/etc/default/dnsmasq

 sudo nano /etc/default/dnsmasq 

通过重启dnsmasq

 sudo service systemd-resolved restart 

说谢谢如果我帮助了,它恢复正常并且不会与其他应用程序混在一起,就像之前的方法DID一样。

干杯,马克

当某人修改文件/etc/resolv.conf ,systemd-resolved会变得疯狂,该文件意味着指向它自己的侦听地址127.0.0.53。

有人可能是由网络事件触发的任何脚本(VPN即将上线或下行,DHCP等)

如果将名称服务器设置回127.0.0.53,那么systemd-resolved将在几秒钟后“冷静下来”。

假设每个人都尊重规则,并且只使用resolvconf来修改解析器的配置,您也可以这样做:

文件/etc/resolvconf/interface-order指定名称服务器的使用顺序,具体取决于接收它们的网络接口。

如果在文件顶部添加systemd-resolved条目,则始终会首先考虑该条目,并且不会修改该文件。

我在18.04遇到了同样的问题。 systemd-resolveddnsmasq倾向于循环。 我这样解决了:

/etc/default/dnsmasq添加或取消注释以下行:

 IGNORE_RESOLVCONF=yes 

创建自己的resolv文件( /etc/resolv.personal )以定义名称服务器。 您可以在此处使用任何名称服务器。 我从OpenNIC拿了两个。

 nameserver 5.132.191.104 nameserver 103.236.162.119 

/etc/dnsmasq.conf添加或取消注释以下行:

 resolv-file=/etc/resolv.personal 

然后重新启动dnsmasq并禁用默认解析程序: systemd-resolved

 sudo service dnsmasq restart sudo systemctl stop systemd-resolved sudo systemctl disable systemd-resolved