हम एक अजीब व्यवहार में भाग रहे हैं जहां हम उच्च सीपीयू उपयोग देखते हैं लेकिन काफी कम लोड औसत।
हमारे निगरानी प्रणाली से निम्नलिखित रेखांकन द्वारा व्यवहार का सबसे अच्छा चित्रण किया गया है।
लगभग 11:57 पर CPU उपयोग 25% से 75% हो जाता है। लोड औसत में काफी बदलाव नहीं हुआ है।
हम 2 हाइपर थ्रेड्स के साथ 12 कोर वाले सर्वर चलाते हैं। ओएस इसे 24 सीपीयू के रूप में देखता है।
CPU उपयोग डेटा /usr/bin/mpstat 60 1
प्रत्येक मिनट चलाकर एकत्र किया जाता है । all
पंक्ति और %usr
स्तंभ का डेटा ऊपर के चार्ट में दिखाया गया है। मैं कुछ इस सीपीयू डेटा प्रति औसत, दिखाता है कर रहा हूँ नहीं "खड़ी" उपयोग। जब हम चार्ट में 75% उपयोग देखते हैं, तो हम एक प्रक्रिया देखते हैं जिसमें लगभग 2000% "स्टैक्ड" सीपीयू का उपयोग होता है top
।
लोड औसत आंकड़ा /proc/loadavg
प्रत्येक मिनट से लिया जाता है ।
uname -a
देता है:
Linux ab04 2.6.32-279.el6.x86_64 #1 SMP Wed Jun 13 18:24:36 EDT 2012 x86_64 x86_64 x86_64 GNU/Linux
लिनक्स डिस्ट है Red Hat Enterprise Linux Server release 6.3 (Santiago)
हम मशीनों पर काफी भारी भार के तहत जावा वेब अनुप्रयोगों के एक जोड़े को चलाते हैं, प्रति मशीन 100 अनुरोध / एस सोचते हैं।
यदि मैं CPU उपयोग डेटा की सही ढंग से व्याख्या करता हूं, जब हमारे पास 75% CPU उपयोग होता है तो इसका मतलब है कि हमारे CPU औसतन 75% समय में एक प्रक्रिया निष्पादित कर रहे हैं। हालाँकि, यदि हमारा CPU 75% व्यस्त है, तो क्या हमें उच्च लोड औसत नहीं देखना चाहिए? सीपीयू 75% व्यस्त कैसे हो सकता है, जबकि हमारे पास रन कतार में केवल 2-4 नौकरियां हैं?
क्या हम अपने डेटा की सही व्याख्या कर रहे हैं? इस व्यवहार का क्या कारण हो सकता है?