systemd-resolve 更新至 17.04 后 CPU 使用率过高

systemd-resolve 更新至 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 update

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

答案1

我在端口 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

引导我DNSStubListener=no添加/etc/systemd/resolved.conf然后sudo service systemd-resolved restart

答案2

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

另一个解决方案的步骤建议

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

sudo nano /etc/default/dnsmasq

通过以下方式重启 dnsmasq

sudo service systemd-resolved restart

如果我有所帮助,请说声谢谢,它会恢复正常并且不会像以前的方法那样干扰其他应用程序。

欢呼吧,马克

答案3

当有人修改文件时,systemd-resolved 会变得疯狂/etc/resolv.conf,该文件应该指向它自己的监听地址 127.0.0.53。

该某人可以是由网络事件(VPN 启动或关闭、DHCP 等)触发的任何脚本。

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

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

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

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

答案4

我在 18.04 中遇到了同样的问题。systemd-resolved并且dnsmasq倾向于循环。我通过以下方式解决了它:

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

IGNORE_RESOLVCONF=yes

创建您自己的resolv文件 ( /etc/resolv.personal) 来定义名称服务器。您可以在此处使用任何名称服务器。我从开放网卡

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

相关内容