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 update
等sudo apt update
时会发生这种情况。
(我正在使用tor和obfs4proxy,它可能对答案有帮助)
我在端口53上的systemd-resolve和dnsmasq之间有类似的冲突。
和
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-resolved
和dnsmasq
倾向于循环。 我这样解决了:
在/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