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

Ali*_*deh 29 xubuntu dns tor systemd systemd-resolved

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

除了 systemd-resolv 之外,一切都运行良好。有时它会使 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                                   
Run Code Online (Sandbox Code Playgroud)

我不知道为什么会发生这个问题,但通常在运行某些命令时会发生sudo apt update

(我正在使用 tor 和 obfs4proxy,这可能有助于回答)

小智 37

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

  • 这有效,但后来我没有 DNS 并且无法按名称访问网站。 (5认同)

mar*_*com 25

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

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

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

sudo nano /etc/default/dnsmasq
Run Code Online (Sandbox Code Playgroud)

通过重新启动 dnsmasq

sudo service systemd-resolved restart
Run Code Online (Sandbox Code Playgroud)

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

干杯,马克


小智 10

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

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

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

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

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

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

  • 所以,上面的两个答案最终都让我失望。但是这个人的表现正如预期的那样。恢复了我的 resolv.conf(由于某种原因,名称服务器被设置为 127.0.0.1)。甚至不需要重新启动 systemd,事情就又恢复了。现在看我的进程,dnsmasq 再次脱离了雷达,它应该在哪里!这应该是公认的答案。谢谢@xalkina! (2认同)