Kworker, यह क्या है और यह इतना CPU क्यों hogging है?


136

मैं हाल ही में कुबंटू नेट्टी बीटा 1 में अपग्रेड किया गया था और मैं प्रक्रिया के काम करने वाले के साथ बहुत सारे मुद्दे रख रहा हूं । क्षणों में यह लगभग आधे मेरे सीपीयू का उपयोग करता है। इसके अलावा, अजीब तरह से यह मेरे यूएसबी पोर्ट को प्रभावित करता है; जब भी मैं एक यूएसबी ड्राइव में प्लग करता हूं, तो प्रक्रिया कीवर्क हाइपरड्राइव में चली जाती है, जिससे मुझे काम करने में असमर्थता होती है।

मैंने एक बग दर्ज करने के बारे में सोचा है, लेकिन जब से मुझे इस बात पर कोई उचित स्पष्टीकरण नहीं मिला है कि मैं क्या कर रहा हूं , मुझे लगा कि मुझे पहले पता लगाना चाहिए।


अजीब, Kworker 10% से वेकअप में चल रहा है और योगदान कर रहा है, लेकिन मेरे पास कोई कुबंटू कार्यक्रम स्थापित नहीं है। अलोस नेपानोमुक स्थापित नहीं है।
दागो

1
एफ़्रेज़ियर की प्रतिक्रिया से मुझे लगता है कि अब इसे कर्नेल के साथ कुछ करना है (इसलिए kworker में k कर्नेल के लिए है)। यही कारण है कि आप भी अपने उबंटू मशीन पर चल रहे kworker होगा।
davorao

1
यह उत्तर यह जानने में भी मददगार हो सकता है कि एक केवर्कर क्या कर रहा है: unix.stackexchange.com/questions/22851/…
aarcat

1
आपको वह आखिरी OS अपडेट नहीं लेना चाहिए था। यदि आप भाग्यशाली हैं, तो अगले इसे ठीक कर देंगे।
नोबार

जवाबों:


109

"kworker" कर्नेल कार्यकर्ता थ्रेड्स के लिए एक प्लेसहोल्डर प्रक्रिया है, जो कर्नेल के लिए वास्तविक प्रसंस्करण का अधिकांश प्रदर्शन करते हैं, विशेष रूप से ऐसे मामलों में जहां व्यवधान, टाइमर, I / O, आदि हैं। ये आम तौर पर किसी भी आवंटित के विशाल बहुमत के अनुरूप होते हैं। सिस्टम "प्रक्रियाओं को चलाने का समय। यह ऐसा कुछ नहीं है जिसे किसी भी तरह से सिस्टम से सुरक्षित रूप से हटाया जा सकता है, और नपोमुक या केडीई से पूरी तरह से असंबंधित है (सिवाय इसके कि ये प्रोग्राम सिस्टम कॉल कर सकते हैं, जिसके लिए कर्नेल को कुछ करने की आवश्यकता हो सकती है)।

2.6.36 विकास ( उदाहरण चर्चा ) के दौरान शुरू होने वाली अपेक्षाकृत बेकार प्रणालियों के लिए अत्यधिक काम करने वाली गतिविधि की कुछ रिपोर्टें थीं , और 2.6.38 के साथ भ्रम और समस्याओं की व्यापक रिपोर्ट (हालांकि इन रिपोर्टों में से कई में "नेट्टी" शब्द शामिल है, इसलिए मुझे लगता है इन लोगों ने 2.6.35 (Ubuntu 10.10 में वितरित) और 2.6.38 (Ubuntu 11.04 में वितरित) के बीच किसी भी कर्नेल का उपयोग नहीं किया है।

मुझे किसी एक या किसी अन्य उपयोगकर्ता के लिए "निश्चित" कुछ की कई रिपोर्ट मिली हैं। अधिकांश "फ़िक्सेस" विभिन्न प्रकारों के कर्नेल के अपडेट से संबंधित प्रतीत होते हैं। जहां अपडेट को किसी विशेष मुद्दे पर ट्रैक किया जा सकता है, अक्सर ऐसा लगता है कि कुछ ड्राइवर या कर्नेल सेवा है जिसे गलत व्यवहार नहीं करने के लिए पैच किया गया है: मुझे यह धारणा है कि कर्नेल में बहुत बड़ी संख्या में चीजें हैं जो व्यवहार का कारण बन सकती हैं जो अत्यधिक केवटर के उपयोग के रूप में देखा जाता है।

यदि आप कार्य की अधिकता के कारण प्रणाली को अनुपयोगी पाते हैं, तो मैं कम चीजों को करने की कोशिश करूंगा। अगर आपको लगता है कि आप कुछ नहीं कर रहे हैं, तो लंबे समय से चल रही सेवाओं या टाइमर (आरएसएस रीडर, मेल रीडर, फ़ाइल इंडेक्सर्स, एक्टिविटी ट्रैकर्स, आदि) को बंद करने का प्रयास करें। यदि यह काम नहीं करता है, तो पुनः आरंभ करने का प्रयास करें। यदि आपका सिस्टम आपको प्री-बूट वातावरण में हार्डवेयर को सक्षम या अक्षम करने की अनुमति देता है, तो उस हार्डवेयर को बंद करने का प्रयास करें जिसे आप उपयोग नहीं कर रहे हैं। यदि आप कुछ भी करने से पहले हर पुनरारंभ पर होते हैं, तो आप चीजों को अनइंस्टॉल करने की कोशिश कर सकते हैं, लेकिन इस बिंदु पर आप विशिष्ट अनुप्रयोगों को ट्रैक करने के लिए syscall प्रोफाइलिंग उपकरण चलाना चाहेंगे जो इस अधिभार का कारण बन रहे हैं।

यह आशा की जाती है कि आपका विशिष्ट सिस्टम भविष्य के कर्नेल उन्नयन के साथ इस व्यवहार को व्यक्त करना बंद कर देगा (और इसके कई सामान्य कारण हल हो गए हैं)।


1
मुझे एक धीमी लॉगिन समस्या थी जो मुझे लगता है कि इस से संबंधित है; मैं इसे इस तरह शुरू करने में देरी करके इसे हल करने का प्रबंधन करता हूं: askubuntu.com/a/484856/46437
कुंभ राशि

1
शायद यह बहुत ही शानदार है, लेकिन बहुत स्पष्ट रूप से व्यक्त प्रतिक्रिया पर यश। यह कुछ सूक्ष्मता से व्यक्त की गई अंग्रेजी है, सर।
जॉन कार्टर

81

क्या है केवर्कर? kworkerएक लिनक्स कर्नेल प्रक्रिया का अर्थ है "काम" (प्रोसेसिंग सिस्टम कॉल)। आप अपनी प्रक्रिया सूची में उनमें से कई हो सकते हैं: kworker/0:1अपने पहले सीपीयू कोर kworker/1:1पर एक है, अपने दूसरे आदि पर एक है।

Kworker आपके CPU को क्यों हग करता है? यह जानने के लिए कि क्यों एक kworker आपके CPU को बर्बाद कर रहा है, आप CPU backtraces बना सकते हैं: अपने प्रोसेसर लोड ( topया कुछ के साथ ) देखें और उच्च भार के क्षणों में kworker, echo l > /proc/sysrq-triggerbacktrace बनाने के लिए निष्पादित करें। (उबंटू पर, इसे आपको लॉगिन करने की आवश्यकता है sudo -s)। ऐसा कई बार करें, फिर dmesgआउटपुट के अंत में बैकट्रैक देखें । देखें कि सीपीयू बैकट्रैक में अक्सर क्या होता है, यह आपकी समस्या के स्रोत की उम्मीद करता है।

उदाहरण: e1000e मेरे मामले में, मुझे लगभग हर बार इस तरह एक बैकट्रेस मिला:

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ईथरनेट कार्ड मॉड्यूल में एक समस्या की ओर संकेत करता है , और वास्तव में एक sudo rmmod e1000eउच्च सीपीयू लोड तुरंत दूर हो जाता है [ e1000e बग [ 26 ]।


4
echo l > /proc/sysrq-triggersysrq: SysRq : This sysrq operation is disabled.दुख की बात कहते हुए प्रॉक्सोम पर काम नहीं करता है ।
hak8or

1
sysrq को sysctl -w kernel.sysrq = 1 के साथ फिर से कनेक्ट करने की आवश्यकता है, askubuntu.com/questions/911522/…
सेबस्टियन

आप कैसे समझ गए कि e1000 समस्या पैदा कर रहा था? सिर्फ इसलिए कि इसे दोहराया जा रहा था?
onurcanbektas

@onurcanbektas हां - सबसे अधिक बार दोहराया जाने वाला परिणाम सबसे संभावित कारण है। क्योंकि बैकग्राउंड स्पॉट चेक होते हैं कि सीपीयू व्यस्त है, जबकि यह हॉग किया गया है।
तानीस

70

Kworker आपके CPU (cont।) को हॉग क्यों करता है? मेरे अन्य उत्तर के विकल्प के रूप में , परफॉरमेंस एक और अधिक पेशेवर तरीका है जो यह विश्लेषण करता है कि कर्नेल कार्य आपके सीपीयू को कैसे रोक रहे हैं:

  1. स्थापित करें perf:

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

    (दूसरे पैकेज को आपके कर्नेल संस्करण से मेल खाना चाहिए। आप सबसे पहले बस इंस्टॉल कर सकते हैं linux-tools-commonऔर perfयह बताने के लिए कॉल कर सकते हैं कि आपको कौन सा पैकेज चाहिए।)

  2. अपने सभी सीपीयू पर कुछ 10 सेकंड के बैकट्रैक रिकॉर्ड करें:

    sudo perf record -g -a sleep 10
    
  3. अपनी रिकॉर्डिंग का विश्लेषण करें:

    sudo perf report
    

    (साथ कॉल ग्राफ नेविगेट , , , और Enter।)


2
मेरे सिस्टम पर, एक VMware वर्चुअल मशीन के अंदर चल perfरहा है , मैंने sd_modकर्नेल मॉड्यूल के नीचे समस्या का पता लगाया । vmxफ़ाइल में SCSI को अक्षम करने से मॉड्यूल को लोड होने से रोका गया और सिस्टम को सामान्य गति में वापस आ गया:scsi0.present = "FALSE"
feklee

E: पैकेज लिनक्स-टूल्स-3.11.0-15-जेनेरिक का पता लगाने में असमर्थ E: ग्लोब के linux-tools-3.11.0-15-जेनेरिक 'द्वारा किसी भी पैकेज को नहीं पा सकता है। E: regex द्वारा कोई भी पैकेज नहीं ढूंढ सका। 'लिनक्स-टूल्स-3.11.0-15-जेनेरिक'
धान

: जरूरत है। "
तानी

8

बस सबको पता चल जाए। मैं इस मुद्दे में भाग गया, पूर्ण स्थापित (जो एक महान उपकरण है), यह स्पिन लॉकिंग और XFS को इंगित करता है। यह NFS की ओर इशारा करता है। तब मुझे एहसास हुआ कि मेरा एक आरोह अंतरिक्ष से बाहर है। रिक्त स्थान को मुक्त करने के कारण Kworker CPU 0 पर गिर गया।

तो जाहिर है यह एक व्यस्त एनएफएस सर्वर पर ड्राइव स्पेस से बाहर चलने का लक्षण हो सकता है!


1
मैंने देखा कि जब एक विशिष्ट वर्चुअलबॉक्स चल रहा था, तो मैंने एक केवटर मेल्टडाउन किया था। यह बताता है कि एक NFS फाइल साझा करने के लिए मेरे होस्ट के साथ चल रहा था। हालाँकि यह पूर्ण रूप से कहीं नहीं था। एनएफएस को अनमाउंट करने से समस्या "हल" हो गई। मुझे लगता है कि मैं एक sshfs माउंट के साथ साझा करूँगा।
प्रोग्रामर

4

मैंने हाल ही में एक बाहरी ड्राइव usb wd पासपोर्ट पर Ubuntu Natty स्थापित किया है। जब मैं अपने डेस्कटॉप पर शुरू करता हूं जो लगभग दो साल पुराना है, तो सब कुछ एक आकर्षण की तरह काम करता है। जब मैं अपने नए लैपटॉप (MSI gt680r सिस्टम) पर शुरू करता हूं, तो कंप्यूटर को नींद से जगाने के बाद, या अगर मैं एक और यूएसबी डिस्क प्लग करता हूं, तो यह धीमा हो जाता है।

Kworker प्रक्रियाएं अधिक से अधिक सीपीयू लेती हैं, और माउस समय-समय पर जमा देता है।

मैंने विभिन्न मंचों पर कई समाधान पढ़े हैं जो काम नहीं करते थे।

मैं अपने लैपटॉप के बायोस में गया, जहाँ था:

Hand XCHI OFF: Enabled
EHCI Hand OFF: disabled

मैं इसके लिए बदल गया:

Hand XCHI OFF: disabled
EHCI Hand OFF: disabled

और उसके बाद से, यह मेरे लैपटॉप पर नेट्टी पर फ्रीज नहीं करता है।

यदि समस्या ठीक हो जाती है तो मैं हाथ वापस कर सकता हूं।


1
क्या कोई समझा सकता है कि ऐसा क्यों होता है? XCHI कैसे जुड़ा है?
गाइसेफ्ट

0

मुझे लगता है कि नेपोमुक को निष्क्रिय करना आपकी मदद कर सकता है:

http://www.freetechie.com/blog/disable-nepomuk-desktop-search-on-kde-4-4-2-kubuntu-lucid-10-04/


धन्यवाद, लेकिन मैंने कुबंटु 11.04 की एक नई प्रति स्थापित की है और पहले से बताई गई समस्या गायब हो गई है।
davorao

1
जब भी यह सैद्धांतिक रूप से प्रश्न का उत्तर दे सकता है, तो उत्तर के आवश्यक भागों को शामिल करना और संदर्भ के लिए लिंक प्रदान करना बेहतर होगा
जीवाश्म
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.