17.04'e güncelleme yapıldıktan sonra yüksek CPU kullanımı


28

Son zamanlarda Xubuntu'mu 16.10'dan 17.04'e yükselttim.

Sistem çözümlemesi dışında her şey iyi çalışıyor. Bazı zamanlar CPU kullanımını çok yüksek kılıyor ve bu sorunun neden gerçekleştiğini bilmiyorum.

Ve işte topkomut çıkışı:

  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                                   

Neden bu sorunun çözüldüğünü bilmiyorum ama genellikle bazı komutları çalıştırdığınızda ortaya çıkıyor sudo apt update.

(Tor ve obfs4proxy kullanıyorum, cevaplamak için yardımcı olabilir)

Yanıtlar:


36

Port 53'te systemd-resol ile dnsmasq arasında da benzer bir çelişki yaşadım.

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

ve

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

eklemek götürdü DNSStubListener=noiçinde /etc/systemd/resolved.confve daha sonra sudo service systemd-resolved restart.


5
Bu işe yaradı, ancak daha sonra DNS kullanamadım ve web sitelerine ismiyle erişemedim.
abalter

@ abalter Benim sorunum özellikle systemd-çözücü ve dnsmasq arasındaki bir döngü idi, bu yüzden bir tanesini kapatmak benim için çalıştı. Hala bu sorunu yaşıyorsanız, nasıl topgöründüğünüzü merak ediyorum ve bunun yerine systemd-resolve başka bir yardımcı program arasında bir döngü ortaya çıkarsa.
MetricMike

Evet, bu resolveddnsmasq ile aynı şeyi yapıyor mu? Bunlardan birini iyi mi etkisiz hale getirelim mi? Çünkü iki yerel dns çözümleyicisine sahip olmak gerçekten mantıklı değil (hala bir TBH konusunda ikna olmadım ama akışa devam etmeye karar verdim ve yapılandırmamı özelleştirmedim)
Ivan Anishchuk

omg ... bu çok iyi geldi. cpu fanımın susturması anında sistemi yeniden başlattığımda çözüldü ... ama şimdi krom 100'e yükseliyor gibi görünüyor?
Jonny Asmar

1
Yeh - bu çözüm istenmeyen yan etkilere sahip görünüyordu (gökgürültüsünü öldürmek de dahil) ... Benim için çalışan numara için markackerman'ın aşağıdaki cevabına bakınız.
Jonny Asmar

24

Diğer Uygulamalar ile İlgili Neden Sorunlar (benim durumumda teamViewer)

Başka bir çözüm önerisi ile önerilmiştir:

Satırı ekleyin DNSMASQ_EXCEPT=loetmek/etc/default/dnsmasq

sudo nano /etc/default/dnsmasq

Dnsmasq ile yeniden başlat

sudo service systemd-resolved restart

Teşekkürler Saydı Eğer yardım edersem, normale döndü ve önceki yöntem DID olarak diğer uygulamalarla uğraşmaz.

Şerefe, Mark


1
sudo nanoyapılandırmaları düzenlemenin yolu değildir, sudoeditbunun yerine kullanılmalıdır. Ve systemctlsystemd ile servisleri yeniden başlatmanın yolu. Her şeyden önce, benim için işe yaramaz, hala% 100 CPU kullanımı görüyorum.
Ivan Anishchuk

Bu dnsmasq'ı etkili bir şekilde devre dışı bırakmıyor mu? O zaman neden tamamen devre dışı bırakmıyorsun?
Ivan Anishchuk

@ IvanAnishchuk sen yarı haklısın. DNSMasq'ın DNS mekanizmasını devre dışı bırakır, ancak aynı zamanda bir DHCP mekanizmasına sahiptir.
Moshe

10

Biri dosyayı /etc/resolv.confkendi kendine değiştirdiğinde 127.0.0.53 adresini işaret etmesi gereken dosyayı değiştirdiğinde systemd-resolved delirir .

Birinin ağ oluşturma olayları tarafından tetiklenen herhangi bir komut dosyası olabileceğini (VPN geliyor veya aşağı geliyor, DHCP vb.)

Ad sunucusunu 127.0.0.53 olarak ayarladıysanız, sistem çözünürlüğü birkaç saniye sonra "sakinleşir".

Herkesin kurallara saygı duyduğunu ve yalnızca çözümleyicinin yapılandırmasını değiştirmek için resolvconf kullanarak olduğunu varsayarak, şunları da yapabilirsiniz:

Dosya /etc/resolvconf/interface-order, alındıkları ağ arayüzüne bağlı olarak ad sunucularının kullanılacağı sırayı belirtir.

systemd-resolvedDosyanın en üstüne bir girdi eklerseniz , önce her zaman dikkate alınır ve dosya değiştirilmez.


2
Böylece, yukarıdaki iki cevap da sonunda başarısızlığa uğradı. Ancak bu, öngörüldüğü gibi davrandı. Resolv.conf'umu geri aldım (nameserver nedense 127.0.0.1 olarak ayarlandı). Hatta systemd'yi yeniden başlatmanız gerekmedi ve işler tekrar düştü. İşlemlerimi şimdi izlerken dnsmasq yine radardan uzak olmalı! BU kabul edilen cevap olmalıdır. Teşekkürler @xalkina!
Jonny Asmar

1
Bu sorun yeniden başlatıldıktan sonra geri dönüyor gibi görünüyor ... Herhangi bir fikrimde neyin değişeceği resolv.conf?
Jonny Asmar

1
Bu çözüm benim için de işe yarar (yukarıdaki ikisi olmasa da)
Alex Hoppus

2

18.04'te de aynı problemi yaşadım. systemd-resolvedve dnsmasqdöngü eğilimindedir. Bunu bu şekilde çözdüm:

Aşağıdaki satırı içine ekleyin veya ekleyin /etc/default/dnsmasq:

IGNORE_RESOLVCONF=yes

Ad sunucularını tanımlamak için kendi resolvdosyanızı ( /etc/resolv.personal) oluşturun . Burada herhangi bir ad sunucusunu kullanabilirsiniz. OpenNIC'den iki tane aldım .

nameserver 5.132.191.104
nameserver 103.236.162.119

Gelen /etc/dnsmasq.confeklenti veya yorumsuz aşağıdaki hattı:

resolv-file=/etc/resolv.personal

Sonra yeniden dnsmasqve varsayılan çözümleyicisini devre dışı bırakın: systemd-resolved.

sudo service dnsmasq restart
sudo systemctl stop systemd-resolved
sudo systemctl disable systemd-resolved
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.