मैं कैसे बताऊं कि किस प्रक्रिया के कारण kswapd उपयोग में है?


23

मैं 100% CPU का उपयोग करके kswapd देखता हूं ... मैं कैसे बता सकता हूं कि किस प्रक्रिया का kswapd इतना उपयोग किया जा रहा है?


1
Uhm। kswapd प्रक्रिया है। यह कर्नेल की ओर से चलता है।
मेल्क


2
@mailq ... हाँ, लेकिन यह कुछ उपयोगकर्ता अंतरिक्ष की स्मृति गमागमन नहीं है? और यदि हां, तो मैं यह कैसे बताऊं कि किस प्रक्रिया की स्मृति उस समय स्वैप कर रही है?
देशप्रेमी

जवाबों:


18

kswapd सभी प्रक्रियाओं के लिए भौतिक रूप से उपलब्ध स्मृति की माँग के जवाब में स्वैप स्थान का प्रबंधन कर रहा है।

यह प्रक्रिया अज्ञेयवादी है, यह केवल इस बात में रुचि रखता है कि कौन से पृष्ठ एक्सेस हैं और कब (यह इस कोर्स से अधिक जटिल है लेकिन चीजों को सरल रखने के लिए हम इसे इस तरह से देख सकते हैं)।

तो असली सवाल यह है कि "किन प्रक्रियाओं का मेमोरी पर सबसे अधिक बोझ होता है, जो किस्वैपड होने के कारण हर समय पृष्ठ की आवश्यकता होती है"।

यह सबसे आसानी से 'शीर्ष' का उपयोग करके और मेमोरी उपयोग सॉर्ट मोड पर स्विच करने के लिए उत्तर दिया गया है।


धन्यवाद!। डो स्काईस्वैप किक केवल तभी जब वास्तविक पृष्ठ भौतिक से अधिक हो जाते हैं या यह तब भी किक करता है, जब एक प्रक्रिया ने मेमोरी को आवंटित किया है या SHM क्षेत्र को मैप किया है, लेकिन इसका उपयोग नहीं किया है? यही है, क्या यह केवल तब होता है जब समस्या होती है या क्या यह भौतिक रूप से स्मृति उपलब्ध है और भले ही कुछ प्रक्रिया बेकार हो गई है आदि में चीजों को रखने और बाहर स्वैप करने के लिए बुक करता है?
देशवॉं

जैसा कि मैं इसे समझता हूं, सामान्य परिस्थितियों में kswapd मुख्य मेमोरी से किसी भी पेज को हटा देगा जो वहां होने की आवश्यकता नहीं है, क्योंकि मुक्त किया गया कोई भी पृष्ठ वह है जिसे कैशिंग या अन्य प्रक्रियाओं के लिए उपयोग किया जा सकता है। यानी, किसी अन्य प्रक्रिया से मेमोरी के लिए अनुरोध के जवाब में इसे स्थानांतरित करने की सुस्ती का खर्च उठाने के बजाय डिस्क पर पहले से ही एक पुराना अप्रयुक्त पृष्ठ रखना बेहतर है।
पॉल

यहां तक ​​कि अगर किसी मशीन को बहुत सारे स्वैप स्थान का उपयोग करने की आवश्यकता होती है, तो उसे करने के लिए 100% सीपीयू नहीं लेना चाहिए। कुछ अजीब है।
ज़ाज़

@Zaz यह इतना नहीं है कि यह स्वैप करने के लिए CPU प्रसंस्करण शक्ति का उपयोग कर रहा है, यह है कि IOWAIT के कारण CPU का 100% उपयोग किया जाता है। हर बार मेमोरी को डिस्क से स्वैप करने की आवश्यकता होती है, सीपीयू को वहां बैठना पड़ता है और इसके लिए इंतजार करना पड़ता है - IOWAIT, और कुछ और नहीं कर रहा है (औसतन)।
पॉल

@Paul: क्या आपको यकीन है? topमुझे बता रहा है कि IO प्रतीक्षा में कोई समय नहीं बिताया जा रहा है, और लगभग 100% समय प्रणाली में खर्च किया जा रहा है। अधिक जानकारी: जब स्वैप प्रयोग में होता है तो kswapd अक्सर 100% CPU का उपयोग करता है
Zaz

9

आप इसे स्क्रिप्ट कर सकते हैं .. लेकिन आप इसे शीर्ष के माध्यम से भी कर सकते हैं

भागो शीर्ष तो प्रेस हे के बाद पी तो दर्ज

अब सभी प्रक्रियाएं स्वैप उपयोग द्वारा हल की जाती हैं और आप देख सकते हैं कि कौन से लोग इसका उपयोग कर रहे हैं


2
O मेरे लिए फ़िल्टर विकल्प लाता है, p दबाता है, फिर enter me "" में 'फ़िल्टर सीमांकक गायब है' शामिल है
शैडो

@ शेडो सम प्रॉब्लम, यहां एक वैकल्पिक कमांड unix.stackexchange.com/questions/128953/…
Björn

8

यदि आप उबंटू 15.10 या उससे अधिक के हैं, तो यह वास्तव में बग का परिणाम हो सकता है , खासकर यदि आपका सिस्टम एक वर्चुअल मशीन है जिसमें स्वैप विभाजन का अभाव है (जैसे, AWS EC2)। समस्या अन्य वितरण पर मौजूद है , लेकिन, लेखन के रूप में, यह स्पष्ट नहीं है एक ही ठीक सार्वभौमिक काम करता है।

एक अस्थायी समाधान:

sudo ln -s /dev/null /etc/udev/rules.d/40-vm-hotadd.rules
sudo reboot

ध्यान दें कि यह एक्सएम और हाइपर-वी आभासी मशीनों के लिए हॉटैडिंग रैम / सीपीयू को अक्षम कर देगा।


यह कुछ समय पहले ही सक्षम किए गए वर्कअराउंड के साथ कुबंटु 16.10 पर मेरे सिस्टम पर कहीं से भी निकला था।
जेटीएन

@jeteon ऐसे कई मुद्दे हैं जो इस व्यवहार का कारण बन सकते हैं; यह सिर्फ एक विशेष रूप से आम होने के लिए होता है।
ज़ेनेक्सर

हाँ। मैंने पाया है कि echo 3 > /proc/sys/vm/drop_cachesएक बार जब यह होने लगता है तो इसे कम कर देता है। मुझे पूर्व-खाली समय में एक क्रॉन जॉब पर कमांड है और यह कंप्यूटर से दूर होने पर ओओएम नरसंहार की अवधि को कम करने में मदद करता है।
jeteon

6

वहाँ भी एक बग kswapdकहीं लगता है, उम्मीद है कि केवल पुराने गुठली पर।

लगभग हर दिन अब kswapd एक बड़े क्लस्टर (गैर-चालू कर्नेल के साथ, हालांकि) में कुछ मशीनों पर बेतरतीब ढंग से चला जाता है। दोनों kswapd प्रक्रियाओं पर 100% CPU। कोई अन्य चलने वाली प्रक्रिया (ssh शेल को छोड़कर), बहुत सारी मुफ्त रैम (700 MB से अधिक) और कोई भी SWAP का उपयोग नहीं किया गया। कोई स्वैपिन नहीं, कोई स्वैपआउट भी नहीं।

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

अगर समस्या पर हमला होता है तो कुछ भी मदद नहीं करता है। सभी प्रक्रियाओं को मारना (जो अकल्पनीय नहीं हुआ), सभी फाइल सिस्टम को अनमाउंट करना, कुछ भी नहीं। kswapdअभी भी 100% CPU पर रहता है। मुझे एसएमपी गुठली में कुछ स्पिनलॉक दौड़ पर संदेह है, लेकिन यह भी संभावना है कि मैं गलत हूं।

शायद मेरा जवाब serverfault.com/questions/316995/#493257 देखें

टिप्पणियाँ:

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

यह ऐतिहासिक है। RedHat ने पुष्टि की: यह NFS क्लाइंट के साथ संयोजन में कर्नेल 2.6.18-194.el5 का मुद्दा था। यह 2012 में ही तय हो गया था। थोड़ा और जानकारी के लिए मेरे पाठ में जुड़ा हुआ उत्तर देखें। यदि आप आज इसे मारते हैं, तो यह कुछ अन्य कारण है।
तिनो

1
यह अभी भी कुछ स्थानों पर एक समस्या है। मैं इन पॉप के टन देखा है। यहाँ , और यहाँ कुछ उदाहरण हैं।
trueCamelType
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.