मैं एक प्रक्रिया गतिरोध किया जा करने के लिए प्रतीत होता है कि है:CPU उपयोग सोने के लिए उच्च संसाधित करता
# strace -p 5075
Process 5075 attached - interrupt to quit
futex(0x419cf9d0, FUTEX_WAIT, 5095, NULL
यह "futex" सिस्टम कॉल पर बैठा है, और अनिश्चित काल के लिए एक ताला पर इंतजार कर रहा है। प्रक्रिया जब "टॉप" चलाया जाता है सीपीयू की एक बड़ी राशि लेने जा करने के लिए दिखाया गया है:
# top -b -n 1
top - 23:13:18 up 113 days, 4:19, 1 user, load average: 1.69, 1.74, 1.72
Tasks: 269 total, 1 running, 268 sleeping, 0 stopped, 0 zombie
Cpu(s): 8.1%us, 0.1%sy, 0.0%ni, 91.8%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 12165696k total, 3810476k used, 8355220k free, 29440k buffers
Swap: 8388600k total, 43312k used, 8345288k free, 879988k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
5075 omdb 18 0 2373m 1.7g 26m S 199.7 14.9 102804:11 java
प्रक्रिया भी एक "एस" में होना दिखाया गया है - नींद राज्य, अगर यह कुछ पर इंतजार कर रहा है जो समझ में आता है संसाधन। हालांकि, मुझे समझ में नहीं आता है कि प्रक्रिया नींद की स्थिति में क्यों है, तो CPU उपयोग 200% के करीब क्यों होगा। नींद की प्रक्रिया पर ऐसे उच्च CPU उपयोग की शीर्ष रिपोर्ट क्यों करती है? क्या इसका सीपीयू उपयोग शून्य नहीं होना चाहिए?
ठीक है, तथ्य यह है कि 'शीर्ष' चल रहा है इसका मतलब यह नहीं है कि दूसरी प्रक्रिया को सोना है। 100% से अधिक उपयोग एक बहुआयामी प्रणाली का तात्पर्य है ;-)। यद्यपि इंटरैक्टिव शैल और उपप्रोसेस यह एक साथ हो सकता है और दूसरे कार्य को सोने के कारण * हो रहा है *, लेकिन यह आवश्यक नहीं है कि किसी कारण का प्रत्यक्ष, सही? – binki