लिनक्स "टॉप" कमांड: हम, एसई, नी, आईडी, वा, हाय, सी और सेंट (सीपीयू उपयोग के लिए) क्या हैं?


195

जब मैं topलिनक्स में जारी करता हूं , तो मुझे इसके समान परिणाम मिलता है:

ऊपर का स्क्रीनशॉट

लाइनों में से एक में सीपीयू उपयोग की जानकारी इस तरह दर्शाई गई है:

Cpu(s): 87.3%us,  1.2%sy,  0.0%ni, 27.6%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st

जबकि मैं उनमें से प्रत्येक (नीचे) की परिभाषा जानता हूं, मुझे समझ नहीं आता कि इन कार्यों का वास्तव में क्या मतलब है।

  • hi - हार्डवेयर सर्विसिंग का क्या मतलब है?
  • si - सर्विसिंग सॉफ्टवेयर का क्या अर्थ है?
  • st - वे कहते हैं कि यह "सीपीयू का समय आभासी सीपीयू द्वारा अनैच्छिक इंतजार में है जबकि हाइपरवाइजर एक वर्चुअल मशीन से चुराया गया दूसरा प्रोसेसर (या)% सीपीयू समय प्रदान कर रहा है"।

लेकिन वास्तव में इसका क्या मतलब है? क्या कोई और अधिक स्पष्ट हो सकता है?

मैं के सभी सूचीबद्ध us, sy, ni, आदि, क्योंकि यह एक ही के लिए खोज दूसरों की मदद कर सकता है। यह जानकारी मैन पेजों में नहीं है।

us: user cpu time (or) % CPU time spent in user space
sy: system cpu time (or) % CPU time spent in kernel space
ni: user nice cpu time (or) % CPU time spent on low priority processes
id: idle cpu time (or) % CPU time spent idle
wa: io wait cpu time (or) % CPU time spent in wait (on disk)
hi: hardware irq (or) % CPU time spent servicing/handling hardware interrupts
si: software irq (or) % CPU time spent servicing/handling software interrupts
st: steal time - - % CPU time in involuntary wait by virtual cpu while hypervisor is servicing another processor (or) % CPU time stolen from a virtual machine

जवाबों:


92

hiहार्डवेयर बिताए समय बिताया है। हार्डवेयर डिवाइस (नेटवर्क कार्ड, कीबोर्ड कंट्रोलर, एक्सटर्नल टाइमर, हार्डवेयर सेंसर, ...) द्वारा हार्डवेयर इंटरप्ट को जेनरेट किया जाता है, जब उन्हें सीपीयू (डेटा आ चुका है, उदाहरण के लिए) को संकेत देने की आवश्यकता होती है।

चूंकि ये बहुत बार हो सकते हैं, और चूंकि वे चालू सीपीयू को अनिवार्य रूप से ब्लॉक कर रहे हैं, जबकि वे चल रहे हैं, कर्नेल हार्डवेयर इंटरप्ट हैंडलर को जितना संभव हो उतना तेज और सरल लिखा जाता है।

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

वर्तमान सीपीयू को अवरुद्ध करने वाले कठोर आईआरक्यू के बारे में हिस्सा, और softirqsकहीं भी चलाने में सक्षम होने के बारे में हिस्सा बिल्कुल सही नहीं है, सीमाएं हो सकती हैं, और कुछ कठिन आईआरक्यू दूसरों को बाधित कर सकते हैं।

एक उदाहरण के रूप में, नेटवर्क कार्ड से एक "डेटा प्राप्त" हार्डवेयर रुकावट बस जानकारी को संग्रहीत कर सकता है "कार्ड एथिक्स को कहीं सेवित करने की आवश्यकता है" और शेड्यूल ए softirqsoftirqबात यह है कि वास्तविक पैकेट मार्ग से चलाता होगा।

siइनमें बिताए समय का प्रतिनिधित्व करता है softirqs

softirqतंत्र के बारे में एक अच्छा पढ़ा (इतिहास के एक बिट के साथ) मैथ्यू विलकॉक्स की आई विल डू इट लेटर: सॉफ्टरक्स, टास्कलेट्स, बॉटम हैल्व्स, टास्क क्यूज़, वर्क क्यूज़ और टाइमर (पीडीएफ, 64k)।

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

CPU समय लेखांकन आईबीएम से दस्तावेज़ आभासी वातावरण में के बारे में समय चोरी में अधिक जानकारी, और सीपीयू लेखांकन है। (यह zSeries प्रकार के हार्डवेयर पर लक्षित है, लेकिन सामान्य विचार अधिकांश प्लेटफार्मों के लिए समान है।)


बहुत साफ़। इसलिए, अगर मैं एक नया साउंड सिस्टम, हेडसेट आदि (उस मामले के लिए कोई भी हार्डवेयर) कनेक्ट करता हूं तो यह भी एक हार्डवेयर व्यवधान का कारण बनता है, है ना?
its_me

2
हां, यह आपके ध्वनि चिपसेट के लिए एक संकेत हो सकता है कि "कुछ हुआ है"। लेकिन हेडसेट में प्लगिंग को पूरी तरह से साउंड चिप द्वारा ही निपटाया जा सकता है (उदाहरण के लिए अपने हेडफ़ोन के लिए मुख्य से ध्वनि आउटपुट को फिर से रूट करना), इसलिए यह मुख्य सीपीयू के लिए एक बाधा उत्पन्न नहीं कर सकता है। आपके कीबोर्ड पर एक कुंजी टाइप करना, हालांकि आपके USB हब डिवाइस से (अगर आपके पास USB कीबोर्ड है) इंटरप्ट उत्पन्न करेगा। यह भी देखें cat /proc/interrupts(डॉक्स के man procलिए आदमी । उस फाइल के बारे में)।
Mat

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

2

"St" मान को AWS से T2.micro EC2 उदाहरण का उपयोग करके समझाया जा सकता है।

में एडब्ल्यूएस प्रलेखन आप पढ़ सकते हैं कि आप vCPU प्रति केवल एक 10% आधारभूत प्रदर्शन मिलता है। इसका मतलब है कि अगर आपके पास एक ऐसी प्रक्रिया है जो बहुत सारे सीपीयू समय का उपभोग करेगी, तो "सेंट" मूल्य लगभग 90 रहेगा क्योंकि आपको केवल वीसीपीयू के 10% का उपयोग करने की अनुमति है। अन्य मानों का योग 10 के आसपास रहेगा।

तो AWS हाइपरविज़र का उपयोग कर रहा है केवल आपको एक निश्चित मात्रा में कंप्यूटिंग शक्ति तक पहुंचने की अनुमति देता है। यह आपको नीचा दिखाता है क्योंकि आप केवल निम्न स्तरीय प्रकार का उपयोग कर रहे हैं।

मुझे उम्मीद है कि इससे चीजें समझने में थोड़ी आसान हो जाएंगी।

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