मैं 100% CPU का उपयोग करके kswapd देखता हूं ... मैं कैसे बता सकता हूं कि किस प्रक्रिया का kswapd इतना उपयोग किया जा रहा है?
मैं 100% CPU का उपयोग करके kswapd देखता हूं ... मैं कैसे बता सकता हूं कि किस प्रक्रिया का kswapd इतना उपयोग किया जा रहा है?
जवाबों:
kswapd सभी प्रक्रियाओं के लिए भौतिक रूप से उपलब्ध स्मृति की माँग के जवाब में स्वैप स्थान का प्रबंधन कर रहा है।
यह प्रक्रिया अज्ञेयवादी है, यह केवल इस बात में रुचि रखता है कि कौन से पृष्ठ एक्सेस हैं और कब (यह इस कोर्स से अधिक जटिल है लेकिन चीजों को सरल रखने के लिए हम इसे इस तरह से देख सकते हैं)।
तो असली सवाल यह है कि "किन प्रक्रियाओं का मेमोरी पर सबसे अधिक बोझ होता है, जो किस्वैपड होने के कारण हर समय पृष्ठ की आवश्यकता होती है"।
यह सबसे आसानी से 'शीर्ष' का उपयोग करके और मेमोरी उपयोग सॉर्ट मोड पर स्विच करने के लिए उत्तर दिया गया है।
topमुझे बता रहा है कि IO प्रतीक्षा में कोई समय नहीं बिताया जा रहा है, और लगभग 100% समय प्रणाली में खर्च किया जा रहा है। अधिक जानकारी: जब स्वैप प्रयोग में होता है तो kswapd अक्सर 100% CPU का उपयोग करता है
आप इसे स्क्रिप्ट कर सकते हैं .. लेकिन आप इसे शीर्ष के माध्यम से भी कर सकते हैं
भागो शीर्ष तो प्रेस हे के बाद पी तो दर्ज
अब सभी प्रक्रियाएं स्वैप उपयोग द्वारा हल की जाती हैं और आप देख सकते हैं कि कौन से लोग इसका उपयोग कर रहे हैं
यदि आप उबंटू 15.10 या उससे अधिक के हैं, तो यह वास्तव में बग का परिणाम हो सकता है , खासकर यदि आपका सिस्टम एक वर्चुअल मशीन है जिसमें स्वैप विभाजन का अभाव है (जैसे, AWS EC2)। समस्या अन्य वितरण पर मौजूद है , लेकिन, लेखन के रूप में, यह स्पष्ट नहीं है एक ही ठीक सार्वभौमिक काम करता है।
एक अस्थायी समाधान:
sudo ln -s /dev/null /etc/udev/rules.d/40-vm-hotadd.rules
sudo reboot
ध्यान दें कि यह एक्सएम और हाइपर-वी आभासी मशीनों के लिए हॉटैडिंग रैम / सीपीयू को अक्षम कर देगा।
echo 3 > /proc/sys/vm/drop_cachesएक बार जब यह होने लगता है तो इसे कम कर देता है। मुझे पूर्व-खाली समय में एक क्रॉन जॉब पर कमांड है और यह कंप्यूटर से दूर होने पर ओओएम नरसंहार की अवधि को कम करने में मदद करता है।
वहाँ भी एक बग kswapdकहीं लगता है, उम्मीद है कि केवल पुराने गुठली पर।
लगभग हर दिन अब kswapd एक बड़े क्लस्टर (गैर-चालू कर्नेल के साथ, हालांकि) में कुछ मशीनों पर बेतरतीब ढंग से चला जाता है। दोनों kswapd प्रक्रियाओं पर 100% CPU। कोई अन्य चलने वाली प्रक्रिया (ssh शेल को छोड़कर), बहुत सारी मुफ्त रैम (700 MB से अधिक) और कोई भी SWAP का उपयोग नहीं किया गया। कोई स्वैपिन नहीं, कोई स्वैपआउट भी नहीं।
अभी तक कुछ भी नहीं बताया गया है कि एक विशेष मशीन को क्यों मारा जाता है और दूसरा नहीं है। यह पूरी तरह से यादृच्छिक नहीं लगता है, क्योंकि यह आमतौर पर थोड़े समय के भीतर एक से अधिक मशीनों को हिट करता है। यह मशीनों की तरह दिखता है, जो निष्क्रिय हैं, साथ ही मशीनें, जो उच्च दबाव में हैं, प्रभाव से कम (!) होने की संभावना है। तो यह काम के भार के साथ कुछ करना है और केवल हिट अगर मशीन न तो निष्क्रिय है और न ही बहुत व्यस्त है।
अगर समस्या पर हमला होता है तो कुछ भी मदद नहीं करता है। सभी प्रक्रियाओं को मारना (जो अकल्पनीय नहीं हुआ), सभी फाइल सिस्टम को अनमाउंट करना, कुछ भी नहीं। kswapdअभी भी 100% CPU पर रहता है। मुझे एसएमपी गुठली में कुछ स्पिनलॉक दौड़ पर संदेह है, लेकिन यह भी संभावना है कि मैं गलत हूं।
शायद मेरा जवाब serverfault.com/questions/316995/#493257 देखें
टिप्पणियाँ: