केवर्कर, यह क्या है और यह इतना सीपीयू क्यों हॉगिंग कर रहा है?

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

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

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

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

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

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

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

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

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

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

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 उच्च सीपीयू लोड को तुरंत दूर कर दिया [ई 1000 ई बग #26].

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

  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.)

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

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

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

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

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

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

Hand XCHI OFF: EnabledEHCI Hand OFF: disabled

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

Hand XCHI OFF: disabledEHCI Hand OFF: disabled

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

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

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

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

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

यह उत्तर यह जानने में भी सहायक हो सकता है कि एक केवर्कर क्या कर रहा है: kernel - Why is kworker consuming so many resources on Linux 3.0.0-12-server? - Unix & Linux Stack Exchange

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

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

मेरे पास एक डेल टी 40 है और निम्नलिखित समाधान मेरे लिए काम करता है: kernel - Ubuntu 16.04 kworker using high CPU constantly - Ask Ubuntu