Kworker, bu nedir ve neden bu kadar çok CPU harcıyor?

109

Yakın zamanda Kubuntu Natty Beta 1 sürümüne geçtim ve kworker işlemiyle ilgili birçok sorun yaşıyorum. Anlarda neredeyse CPU'mın yarısını kullanır. Ayrıca, garip bir şekilde USB portlarımı etkiliyor gibi görünüyor; Ne zaman bir USB sürücüyü taksam, kworker işlemi hiper-sürücüye gider ve beni işe yaramaz.

Bir hatayı dosyalamayı düşündüm ama ilk önce kworker 'in ne olduğunu anlayabilmem için makul bir açıklama bile yapmadım.

    
sordu davorao 05.04.2011 15:57

6 cevap

94

"kworker", çekirdeğin gerçek işlemlerinin çoğunu gerçekleştiren çekirdek çalışan iş parçacığı için, özellikle kesmelerin, zamanlayıcıların, G / Ç, vb. durumların gerçekleştirildiği bir yer tutucu işlemdir. Bunlar genellikle büyük bir çoğunluğa karşılık gelir. Çalışan süreçlere ayrılan herhangi bir "sistem" zamanı. Sistemden güvenli bir şekilde çıkarılabilecek bir şey değildir ve nepomuk veya KDE ile tamamen ilgisi yoktur (bu programların çekirdeği bir şeyler yapmasını gerektirebilecek sistem çağrıları yapması dışında).

Göreceli olarak aşırı kworker aktivitesiyle ilgili bazı raporlar vardı 2.6.36 geliştirme sırasında başlayan boşta kalma sistemleri ( örnek tartışma ) ve 2.6 ile karışıklık ve sorunların geniş raporları .38 (bu raporların çoğu "Natty" kelimesini içermesine rağmen, bu kişilerin 2.6.35 (Ubuntu 10.10'da dağıtılmış) ve 2.6.38 (Ubuntu 11.04'te dağıtılmış) arasında herhangi bir çekirdek kullanmamış olduğunu varsayıyorum.

Bir veya başka bir kullanıcı için bunu "düzelten" bir şeyin birçok raporunu buldum. Çoğu "düzeltmeler", çeşitli türlerdeki çekirdeğin güncellemeleri ile ilgili görünmektedir. Güncelleştirmenin belirli bir soruna izlendiği durumlarda, çoğu zaman bir sürücü veya çekirdek hizmetinin yanlış davranmayacak şekilde düzeltilmiş olduğu görülmektedir: Çekirdeğin davranışa neden olabilecek çok fazla sayıda olacağı izlenimine sahibim aşırı kworker kullanımı olarak gözlenir.

Sistemi aşırı kworker etkinliği nedeniyle kullanılamaz durumda bulursanız, daha az şey yapmaya çalışmanızı tavsiye ederim. Bir şey yapmadığınızı düşünüyorsanız, uzun süredir devam eden hizmetleri veya zamanlayıcıları (RSS okuyucuları, posta okuyucuları, dosya dizinleyicileri, etkinlik izleyicileri, vb.) Kapatmayı deneyin. Bu işe yaramazsa, yeniden başlatmayı deneyin. Sisteminiz, önyükleme öncesi bir ortamda donanımı etkinleştirmenize veya devre dışı bırakmanıza izin veriyorsa, kullanmadığınız donanımı kapatmayı deneyin. Herhangi bir şeyi yapmadan önce her yeniden başlatmada gerçekleşirse, bazı şeyleri kaldırmayı deneyebilirsiniz, ancak bu noktada bu aşırı yüklenmeye neden olan belirli uygulamaları izlemek için sistematik profil oluşturma araçlarını çalıştırmak istersiniz.

Belli sisteminizin, bu davranışı gelecekteki bir çekirdek yükseltmesiyle ifade etmeyi bırakacağı umulmaktadır (ve bunun en yaygın nedenlerinin çoğu çözülmüştür).

    
verilen cevap Emmet Hikory 08.07.2011 12:44
68

Kworker nedir? kworker , "iş" (işlem sistemi çağrıları) yapan bir Linux çekirdek işlemi anlamına gelir. İşlem listenizde bunlardan birkaçına sahip olabilirsiniz: kworker/0:1 , ilk CPU çekirdeğinizdeki%, kworker/1:1 ikincisinizdeki koddur.

Kworker neden CPU'nuzu sallıyor? Bir korsanın CPU'nuzu neden boşa harcadığını öğrenmek için, CPU backtraces'i yaratabilirsiniz: işlemci yükünüzü ( top veya bir şeyle) izleyin ve kworker yoluyla yüksek yük, bir backtrace oluşturmak için echo l > /proc/sysrq-trigger yürütür. (Ubuntu'da, bu sudo -s ile giriş yapman gerekiyor). Bunu birkaç kez yapın, sonra dmesg çıktısının sonunda geriye dönük izleri izleyin. CPU backtracesinde sıkça ne olduğunu görün, umarım sizi sorunun kaynağına yönlendirir.

Örnek: e1000e. Durumumda, neredeyse her zaman böyle bir backtrace buldum:

Call Trace:
 delay_tsc+0x4a/0x80
 __const_udelay+0x2c/0x30
 e1000_acquire_swflag_ich8lan+0xa2/0x240 [e1000e]
 e1000e_read_phy_reg_igp+0x29/0x80 [e1000e]
 e1000e_phy_has_link_generic+0x85/0x120 [e1000e]
 e1000_check_for_copper_link_ich8lan+0x48/0x930 [e1000e]
 e1000e_has_link+0x55/0xd0 [e1000e]
 e1000_watchdog_task+0x5e/0x960 [e1000e]

e1000e ethernet kartı modülünde bir sorun olduğunu ve gerçekten de sudo rmmod e1000e 'nin yüksek CPU yükünü hemen aldığını ima etti [ e1000e hatası # 26 ].

    
verilen cevap tanius 17.02.2014 03:42
51

Kworker neden CPU'nuzu (devam ediyor)? " benim diğer cevap burada , Perf çekirdek görevleri CPU'nuzu nasıl hogging analiz etmek için daha profesyonel bir yoldur:

  1. perf yüklemesi:

    sudo apt-get install linux-tools-common linux-tools-3.11.0-15-generic
    

    (İkinci paket, çekirdek sürümünüzle eşleşmelidir. İlk olarak, yalnızca linux-tools-common dosyasını yükleyebilir ve hangi paketin gerektiğini size bildirmesi için perf 'yi çağırabilirsiniz.)

  2. Tüm CPU'larınızda 10 saniyelik geri sayım kaydedin:

    sudo perf record -g -a sleep 10
    
  3. Kaydınızı analiz edin:

    sudo perf report
    

    ( , , , ve Enter .)

verilen cevap tanius 17.02.2014 16:26
5

Herkesin bilmesini sağlamak için. Bu konuya koştum, perf (ki bu harika bir araç) yerleştirdi, kilitleme ve XFS'yi döndürmeyi işaret etti. Bu NFS'ye işaret etti. Sonra, mountlarımdan birinin alan dışı olduğunu anladım. Boş alan, kworker CPU'nun 0'a düşmesine neden oldu.

Öyleyse bu, yoğun bir NFS sunucusunda sürücü alanından çıkmanın bir belirtisi olabilir!

    
verilen cevap Erik Aronesty 19.03.2014 14:40
4

Son zamanlarda Ubuntu Natty'yi harici bir sürücü usb wd pasaportuna kurdum. Yaklaşık iki yaşında olan masaüstümde başladığımda her şey bir çekicilik gibi çalışır. Yeni dizüstü bilgisayarımda (MSI gt680r sistemi) başladığımda, bilgisayarı uykudan uyandırdıktan sonra veya başka bir USB diski taktıktan sonra yavaşlar.

Kworker işlemleri daha fazla cpu alıyor ve zaman zaman fare donuyor.

Çalışmayan çeşitli forumlarda birkaç çözüm okudum.

Dizüstü bilgisayarımın biosuna gittim:

Hand XCHI OFF: Enabled
EHCI Hand OFF: disabled

Şunun için değiştirdim:

Hand XCHI OFF: disabled
EHCI Hand OFF: disabled

ve bundan sonra dizüstü bilgisayarımda doğal olarak donmuyor.

Sorun düzeltildiğinde, elinizi tekrar etkinleştiririm.

    
verilen cevap CedCannes 01.07.2011 11:08
0

Nepomuk’u devre dışı bırakmanın size yardımcı olabileceğini düşünüyorum:

İşte

    
verilen cevap Extender 06.05.2011 08:02

Etiketlerdeki diğer soruları oku