जब एक प्रक्रिया "समय" शीर्ष में बंद हो गई है तो इसका वास्तव में क्या मतलब है?


11

मैं देख रहा हूँ कि हम महत्वपूर्ण स्वैप अलर्ट क्यों प्राप्त कर रहे हैं, और मुझे कुछ ऐसा मिलेगा:

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  SWAP COMMAND
14683 user1     30  10 16.0g 772m  744 S  0.3  0.3 277:24.87 6.5g MATLAB
14576 user1     30  10 8125m 1.1g  736 S  0.3  0.4 261:16.73 4.1g MATLAB

जहां TIME + कॉलम उन प्रक्रियाओं के लिए जमे हुए हैं।

मेरा सवाल है, ऊपर में, यह क्या मतलब है?

जैसा कि मैंने इसे समझा, रोका गया समय का अर्थ है कि यह एक निष्क्रिय प्रक्रिया है / सीपीयू द्वारा संसाधित नहीं किया जा रहा है। हालाँकि उपरोक्त उदाहरण 0.3% CPU उपयोग को दर्शाता है, इसलिए इस तथ्य के बावजूद कि यह बहुत छोटा है, क्या काल स्तंभ को जारी नहीं रखना चाहिए?

क्या ये प्रक्रियाएं "समाप्त" हैं? किस मामले में, उनकी सफाई कैसे की जाती है? क्या जिन उपयोगकर्ताओं ने उन्हें शुरू किया है, उन्हें उन संसाधनों को मुक्त करने के लिए उन्हें या कुछ को स्वीकार करने की आवश्यकता है?


1
0.3% पर, यह 1 सेंटी-सेकंड हर 3/4 सेकंड है। क्या आपने लंबे समय तक इंतजार किया है?
स्टीफन चेज़लस

1
माइंड-ब्लोइंग रहस्योद्घाटन: समय वृद्धि की गणना CPU उपयोग के प्रतिशत के रूप में की जाती है? वाह। तो अगर यह सीपीयू 100% था, जो वास्तविक समय के बराबर होगा?
CptSupermrkt

5
TIME, संचयी समय है CPU (कोई भी CPU) किसी भी थ्रेड को इस प्रक्रिया में चलाने में खर्च किया जाता है जब से इसे शुरू किया गया था। तो यह भी वास्तविक समय की तुलना में तेजी से जा सकते हैं यदि आपके पास कई सीपीयू कोर हैं और प्रक्रिया बहु-थ्रेडेड है।
स्टीफन चेजलस

जवाबों:


10

यदि आप एक नकली नौकरी चलाते हैं जैसे कि sleep 120और फिर htopआप इसे देखते हैं कि इसकी स्थिति Sउर्फ "सो" है और प्रक्रिया TIMEअवधि के लिए 0: 00.00 पर बनी हुई है।

ऐसा इसलिए है क्योंकि यह प्रक्रिया 0 सीपीयू समय का उपभोग कर रही है, जो TIMEस्तंभ का आशय है । यह सीपीयू समय की मात्रा को ट्रैक करता है जो किसी दिए गए प्रक्रिया का उपयोग करता है।

              ss # १

यह गणना कई बार भ्रामक हो सकती है यदि एक प्रक्रिया कई सीपीयू कोर पर चल सकती है, क्योंकि यह उपलब्ध होने की तुलना में अधिक समय का उपभोग कर सकता है। वहां जो कुछ भी हो रहा है, वह यह है कि यदि आपके पास कोर का X नंबर है, तो आपका समय X * TIME के ​​रूप में दिखाई दे सकता है।


4

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

So, the CPU usage is due to spawned children which do not count in the TIME+ column. आप 'S' स्विच के माध्यम से संचयी समय करने के लिए शीर्ष बदल सकते हैं।

लेकिन मुझे लगता है कि आप गलत संकेतक देख रहे हैं कि आप क्या खोज रहे हैं।

strace -p <pid> यहाँ आपका दोस्त है, और आपको चल रही प्रक्रिया में झाँकने देगा और वास्तव में यह क्या कर रहा है।

स्ट्रेस विकल्प के असंख्य लेता है। कुछ उल्लेखनीय विकल्पों में शामिल हैं -f, -ff, -i, v, आदि .. स्ट्रेस एक सबसे उपयोगी उपकरण है, इसलिए ऐसा करने के लिए सबसे अच्छा है man straceऔर अपने लिए उन विकल्पों की तलाश करें जो आपको इस तरह के समस्याओं के निवारण के लिए देता है।

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