systemd-selesaikan penggunaan cpu tinggi setelah pembaruan ke 17.04


28

Saya baru saja memutakhirkan Xubuntu saya dari 16.10 ke 17.04.

Setiap hal bekerja dengan baik kecuali penyelesaian sistem. beberapa kali itu membuat penggunaan cpu terlalu tinggi dan saya tidak tahu mengapa masalah ini terjadi.

Dan di sini adalah topoutput perintah:

  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                                   

Saya tidak tahu mengapa masalah ini terjadi tetapi biasanya terjadi ketika menjalankan beberapa perintah seperti sudo apt update.

(Saya menggunakan tor dan obfs4proxy, Ini mungkin membantu untuk menjawab)

Jawaban:


36

Saya memiliki konflik serupa antara systemd-resolve dan dnsmasq pada port 53.

/unix/304050/how-to-avoid-conflicts-between-dnsmasq-and-systemd-resolved

dan

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

menyebabkan saya untuk menambahkan DNSStubListener=nodalam /etc/systemd/resolved.confdan kemudian sudo service systemd-resolved restart.


5
Ini berhasil, tetapi kemudian saya tidak memiliki DNS dan tidak dapat mengakses situs web dengan nama.
abalter

@abalter Masalah saya secara khusus adalah loop antara systemd-resol dan dnsmasq, jadi mematikannya bekerja untuk saya. Jika Anda masih mengalami masalah ini, saya akan penasaran seperti apa toppenampilan Anda dan jika itu mengungkapkan loop antara systemd-resol dan utilitas lain sebagai gantinya.
MetricMike

Ya, apakah ini resolvedmelakukan hal yang sama dengan dnsmasq? Haruskah kita menonaktifkan salah satunya untuk selamanya? Karena tidak benar-benar masuk akal untuk memiliki dua resolvers dns lokal (saya masih belum yakin tentang satu TBH tapi saya memutuskan untuk mengikuti arus dan tidak menyesuaikan konfigurasi saya)
Ivan Anishchuk

omg ... rasanya enak sekali. membungkam kipas cpu saya segera setelah saya me-restart systemd-diselesaikan ... tapi sekarang chrome tampaknya spiking ke 100?
Jonny Asmar

1
Yeh - solusi ini tampaknya memiliki efek samping yang tidak diinginkan (termasuk membunuh thunderbird) ... Lihat jawaban di bawah ini dari markackerman untuk trik yang bekerja untuk saya.
Jonny Asmar

24

Menyebabkan Masalah dengan Aplikasi lain (teamViewer dalam kasus saya)

Disarankan oleh Langkah-langkah solusi lainnya

Tambahkan baris DNSMASQ_EXCEPT=loke/etc/default/dnsmasq

sudo nano /etc/default/dnsmasq

Mulai ulang dnsmasq via

sudo service systemd-resolved restart

Say Thanks Jika saya membantu, itu kembali normal dan TIDAK main-main dengan aplikasi lain, seperti metode sebelumnya DID.

Cheers, Mark


1
sudo nanobukan cara mengedit konfigurasi, sudoeditharus digunakan sebagai gantinya. Dan systemctladalah cara untuk me-restart layanan dengan systemd. Di atas segalanya, itu tidak bekerja untuk saya, saya masih melihat penggunaan CPU 100%.
Ivan Anishchuk

Dan bukankah ini secara efektif menonaktifkan dnsmasq? Mengapa tidak menonaktifkannya sepenuhnya?
Ivan Anishchuk

@IvanAnishchuk Anda setengah benar. Itu menonaktifkan mekanisme DNS DNSMasq tetapi juga memiliki mekanisme DHCP.
Moshe

10

systemd-resolved menjadi gila ketika seseorang memodifikasi file /etc/resolv.conf, yang dimaksudkan untuk menunjuk ke alamat pendengarannya sendiri 127.0.0.53.

Seseorang itu bisa berupa skrip apa pun yang dipicu oleh peristiwa jaringan (VPN datang, atau turun, DHCP, dll.)

Jika Anda mengatur server nama kembali ke 127.0.0.53, maka systemd-resolved akan "tenang" beberapa detik kemudian.

Dengan asumsi bahwa semua orang menghormati aturan, dan hanya menggunakan resolvconf untuk mengubah konfigurasi resolver, Anda juga dapat melakukan ini:

File /etc/resolvconf/interface-ordermenentukan urutan di mana nameserver akan digunakan, tergantung pada antarmuka jaringan yang mereka terima.

Jika Anda menambahkan entri untuk systemd-resolveddi bagian atas file, itu akan selalu dianggap pertama dan file tidak akan diubah.


2
Jadi, kedua jawaban di atas akhirnya gagal pada saya. Tapi yang ini berperilaku seperti yang diperkirakan. Kembalikan resolv.conf saya (nameserver diatur ke 127.0.0.1 karena beberapa alasan). Bahkan tidak perlu me-restart systemd dan hal-hal berhenti lagi. Menyaksikan proses saya sekarang, dnsmasq tidak aktif lagi, di mana seharusnya! INI harus menjadi jawaban yang diterima. @Xalkina terima kasih!
Jonny Asmar

1
Masalah ini tampaknya kembali setelah reboot ... Ada ide apa yang akan memodifikasi saya resolv.conf?
Jonny Asmar

1
Solusi ini juga berfungsi untuk saya (sementara keduanya di atas tidak)
Alex Hoppus

2

Saya memiliki Masalah yang sama pada 18.04. systemd-resolveddan dnsmasqcenderung berulang. Saya memecahkannya dengan cara ini:

Tambahkan atau batalkan komentar pada baris berikut di /etc/default/dnsmasq:

IGNORE_RESOLVCONF=yes

Buat resolvfile Anda sendiri ( /etc/resolv.personal) untuk mendefinisikan server nama. Anda dapat menggunakan server nama apa pun di sini. Saya mengambil dua dari OpenNIC .

nameserver 5.132.191.104
nameserver 103.236.162.119

Dalam /etc/dnsmasq.confmenambah atau menghapus komentar, baris berikut:

resolv-file=/etc/resolv.personal

Kemudian restart dnsmasqdan menonaktifkan penyelesai default: systemd-resolved.

sudo service dnsmasq restart
sudo systemctl stop systemd-resolved
sudo systemctl disable systemd-resolved
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.