systemd- แก้ไขการใช้งาน cpu สูงหลังจากอัปเดตเป็น 17.04


28

ฉันเพิ่งอัพเกรด Xubuntu จาก 16.10 เป็น 17.04

ทุกสิ่งทำงานได้ดียกเว้น systemd-resolution บางครั้งมันทำให้การใช้งาน 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                                   

ผมไม่ทราบว่าทำไมปัญหานี้ได้รับการ happend sudo apt updateแต่โดยปกติก็เกิดขึ้นเมื่อเรียกใช้คำสั่งบางอย่างเช่น

(ฉันใช้ tor และ obfs4proxy อาจเป็นประโยชน์สำหรับคำตอบ)

คำตอบ:


36

ฉันมีความขัดแย้งคล้ายกันระหว่าง systemd-resolution และ dnsmasq บนพอร์ต 53

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.confsudo service systemd-resolved restart


5
สิ่งนี้ใช้ได้ แต่ฉันไม่มี DNS และไม่สามารถเข้าถึงเว็บไซต์ด้วยชื่อ
หยุดยั้ง

@abalter ปัญหาของฉันคือการวนซ้ำระหว่าง systemd-resolution และ dnsmasq ดังนั้นการปิดใช้งานได้สำหรับฉัน หากคุณยังคงมีปัญหานี้อยู่ฉันจะสงสัยว่าtopหน้าตาของคุณเป็นอย่างไรและหากพบว่ามีลูประหว่าง systemd-resolution และยูทิลิตี้อื่นแทน
MetricMike

ใช่สิ่งนี้resolvedทำเช่นเดียวกับ dnsmasq หรือไม่ เราควรปิดการใช้งานหนึ่งในนั้นให้ดีหรือไม่? เพราะมันไม่สมเหตุสมผลเลยที่จะมีตัวแก้ไข DNS ท้องถิ่นสองตัว (ฉันยังไม่มั่นใจเกี่ยวกับ TBH หนึ่งอัน แต่ฉันตัดสินใจที่จะไปกับโฟลว์และไม่ปรับแต่งการตั้งค่าของฉัน)
Ivan Anishchuk

พระเจ้า ... ที่รู้สึกดีมาก การเงียบของแฟน cpu ของฉันทันทีที่ฉันรีสตาร์ท systemd- แก้ไข ... แต่ตอนนี้โครเมี่ยมดูเหมือนจะ spiking ถึง 100?
Jonny Asmar

1
Yeh - วิธีนี้ดูเหมือนว่าจะมีผลข้างเคียงที่ไม่พึงประสงค์ (รวมถึงการฆ่าสายฟ้า) ... ดูคำตอบด้านล่างจาก markackerman สำหรับเคล็ดลับที่เหมาะกับฉัน
Jonny Asmar

24

ปัญหาที่เกิดกับแอพอื่น ๆ (teamViewer ในกรณีของฉัน)

แนะนำโดยขั้นตอนการแก้ปัญหาอื่น

เพิ่มบรรทัดDNSMASQ_EXCEPT=loไปที่/etc/default/dnsmasq

sudo nano /etc/default/dnsmasq

รีสตาร์ท dnsmasq ผ่าน

sudo service systemd-resolved restart

พูดขอบคุณถ้าฉันช่วยมันมันกลับมาเป็นปกติและไม่หมุนไปรอบ ๆ กับแอพอื่น ๆ เหมือนกับวิธีก่อนหน้า DID

ไชโยมาร์ค


1
sudo nanoไม่ใช่วิธีแก้ไขการกำหนดค่าsudoeditควรใช้แทน และsystemctlเป็นวิธีการเริ่มบริการใหม่ด้วย systemd เหนือสิ่งอื่นใดมันไม่ทำงานสำหรับฉันฉันยังเห็นการใช้งาน CPU 100%
Ivan Anishchuk

และสิ่งนี้ไม่ได้ปิดการใช้งานอย่างมีประสิทธิภาพ dnsmasq? ทำไมไม่ปิดการใช้งานอย่างสมบูรณ์แล้ว?
Ivan Anishchuk

@IvanAnishchuk คุณถูกครึ่งแล้ว มันปิดการใช้งานกลไก DNS ของ DNSMasq แต่ก็มีกลไก DHCP เช่นกัน
Moshe

10

systemd- แก้ไขแล้วจะบ้าเมื่อมีคนแก้ไขไฟล์/etc/resolv.confซึ่งตั้งใจจะชี้ไปยังที่อยู่การฟังของตัวเอง 127.0.0.53

บางคนอาจเป็นสคริปต์ใด ๆ ที่เกิดจากกิจกรรมเครือข่าย (VPN ขึ้นหรือลง DHCP เป็นต้น)

หากคุณตั้งค่าเนมเซิร์ฟเวอร์ให้กลับไปเป็น 127.0.0.53 ระบบจะแก้ไขให้ "สงบลง" ไม่กี่วินาทีต่อมา

สมมติว่าทุกคนเคารพกฎและใช้ resolvconf เพื่อแก้ไขการกำหนดค่าของตัวแก้ไขเท่านั้นคุณสามารถทำสิ่งนี้ได้:

ไฟล์จะ/etc/resolvconf/interface-orderระบุลำดับการใช้เนมเซิร์ฟเวอร์ซึ่งขึ้นอยู่กับอินเตอร์เฟสเครือข่ายที่ได้รับ

หากคุณเพิ่มรายการสำหรับsystemd-resolvedที่ด้านบนของไฟล์รายการนั้นจะถูกพิจารณาก่อนเสมอและไฟล์จะไม่ถูกแก้ไข


2
ดังนั้นคำตอบทั้งสองข้างต้นทำให้ฉันล้มเหลวในที่สุด แต่สิ่งนี้ทำตัวเหมือนที่ทำนายไว้ คืนค่า resolv.conf ของฉัน (เนมเซิร์ฟเวอร์ถูกตั้งค่าเป็น 127.0.0.1 ด้วยเหตุผลบางประการ) ไม่จำเป็นต้องรีสตาร์ท systemd และเลิกทำสิ่งต่าง ๆ อีกครั้ง ดูกระบวนการของฉันตอนนี้ dnsmasq ถูกปิดเรดาร์อีกครั้งที่ควรจะเป็น! นี่ควรเป็นคำตอบที่ยอมรับได้ ขอบคุณ @xalkina!
Jonny Asmar

1
ปัญหานี้ดูเหมือนว่าจะกลับมาหลังจากรีบูต ... คิดสิ่งใดจะเป็นการปรับเปลี่ยนของฉันresolv.conf?
Jonny Asmar

1
วิธีนี้ใช้ได้ผลสำหรับฉันเช่นกัน (ในขณะที่ทั้งสองข้างต้นไม่ได้)
Alex Hoppus

2

ฉันมีปัญหาเดียวกันใน 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

แล้วรีสตาร์ทและปิดการใช้จำแนกเริ่มต้น:dnsmasqsystemd-resolved

sudo service dnsmasq restart
sudo systemctl stop systemd-resolved
sudo systemctl disable systemd-resolved
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.