AIX पर sar से आउटपुट की समझ बनाना


11

मैं कुछ आंकड़ों को समझने की कोशिश कर रहा हूं जिन्हें एसएआर से खींचा गया है। इस बारे में मेरे तीन मुख्य प्रश्न हैं। अंत में, मैं यह निर्धारित करना चाहूंगा कि सर्वर के एक समूह में प्रत्येक नमूने अंतराल पर कितने सीपीयू निष्क्रिय थे।

  1. हर प्रविष्टि में कई सीपीयू दिखाई नहीं दे रहे हैं। क्या यह अपेक्षित है और वास्तव में इसका क्या मतलब है? यह # 2 से संबंधित है?
  2. अप्रयुक्त लाइनें (सीपीयू = यू) हैं। प्रलेखन कहते हैं, "यू सिस्टम-वाइड अप्रयुक्त क्षमता इंगित करता है"। मुझे वास्तव में "सिस्टम-वाइड अप्रयुक्त क्षमता" या किसी भी परिभाषा की सटीक परिभाषा नहीं मिल रही है। मुझे यकीन नहीं है कि एक पंक्ति की व्याख्या कैसे करें जो कुछ बताती है जैसे "अप्रयुक्त क्षमता 70% बेकार थी।"
  3. अंत में, मैं अनिश्चित हूं कि कैसे -या allरेखा की गणना की जाती है। मुझे लगता है कि यह सभी सीपीयू का औसत है, लेकिन जब मैं सभी सीपीयू में गणित करता हूं, तो मुझे उस लाइन पर जितना हो सकता है, उससे अलग जवाब मिलता है। क्या कोई मुझे बता सकता है कि गणना में क्या जाता है? एसएआर के बारे में इस संबंधित प्रश्न को करीब से देखने पर ऐसा प्रतीत होता है कि system-wideनिष्क्रिय प्रतिशत प्रत्येक सीपीयू के निष्क्रिय प्रतिशत और 'भौतिक' मान का गुणनफल है। दुर्भाग्य से, मेरे पास physcया entc% नहीं है (यह मानते हुए कि एक है) इसलिए मैं इसे अपने डेटा के साथ सत्यापित नहीं कर सकता। अगर यह सही है, तो क्या इसका मतलब है कि मुझे physcनिष्क्रिय प्रतिशत को समझने के लिए मूल्यों की आवश्यकता है ?

यहाँ कुछ उदाहरण हैं जो मैं देख रहा हूँ। ये सभी एक ही दिन से हैं।

CPU | Idle    CPU | Idle    CPU | Idle
----------    ----------    ----------
0   | 8       0   | 15      0   | 17
1   | 25      1   | 94      1   | 32
2   | 79      2   | 100     2   | 97
3   | 62      3   | 99      3   | 71
4   | 5       4   | 13      4   | 5
5   | 7       5   | 13      5   | 23
6   | 6       6   | 99      6   | 71
7   | 7       7   | 44      7   | 98
8   | 11      8   | 12      8   | 48
9   | 17      12  | 0       12  | 38
10  | 33      16  | 12      16  | 37
11  | 64      20  | 3       20  | 42
12  | 6        U  | 95       U  | 97
13  | 6        -  | 15       -  | 85
14  | 6       
15  | 6       
16  | 12      
17  | 15      
18  | 62      
19  | 69      
20  | 7       
21  | 7       
22  | 6       
23  | 7       
 U  | 80       
 -  | 15       

case 1: avg(24): 22
case 2: avg(12): 42
case 3: avg(12): 48

यह डेटा एक स्क्रिप्ट द्वारा निर्मित होता है जो चलता है: sar -P ALL 1 1यह तब एक awk कमांड चलाता है। मैं awk के साथ अच्छा नहीं हूँ लेकिन ये स्पष्ट रूप से महत्वपूर्ण भाग हैं:

फिल्टर: /System|AIX|^$|%/ {next}

पार्स करें: {k=0;if(NR==7) k=1} {sub("^-", "all", $1); cpu=$(1+k); user=$(2+k); sys=$(3+k); io=$(4+k); idle=$(5+k)}

यह सही लगता है कि मैं awk के बारे में क्या समझती हूं और मैं आउटपुट के उदाहरणों से क्या देखती हूं, इसके आधार पर सही लगता है।

अगर मुझे लगता है कि केस 2 के लिए लापता मान सभी शून्य हैं, तो औसत 21 है जो केस 1 के साथ कुछ हद तक सुसंगत लगता है। हालांकि, अगर मैं केस 3 के लिए यह धारणा बनाता हूं, तो मुझे 24% मिलता है, जो 85% के साथ पूरी तरह से बाधाओं पर है समग्र सीपीयू आइडल के लिए सर द्वारा दिया गया प्रतिशत मूल्य।

यहां पूरे दिन की कैद का ग्राफ (हर 30 सेकंड में):

यहाँ छवि विवरण दर्ज करें

जब बहुत कम 'सिस्टम-वाइड' निष्क्रिय समय होता है, तो औसत सीपीयू आइडल और 'सिस्टम-वाइड' आइडल के बीच संबंध लगभग सही होता है। लेकिन जैसे-जैसे the सिस्टम-वाइड ’निष्क्रिय समय बढ़ता है, सहसंबंध बहुत कमजोर हो जाता है। इस धारणा पर काम करना कि ये निर्धारक मशीनें हैं, जो मुझे बताती हैं कि मेरे पास जो डेटा है वह पूरी तस्वीर नहीं दे रहा है। लेकिन मुझे कितनी परवाह है?

मुझे पूरी तरह से समझ में नहीं आ रहा है कि प्रत्येक बिंदु पर कुछ सीपीयू की रिपोर्ट क्यों नहीं की जा रही है लेकिन जो गायब हैं वे समान रूप से वितरित नहीं किए गए हैं जैसा कि ऊपर दिए गए उदाहरणों में देखा गया है। इस रेडबुक को पढ़ने से , मैं इसे लेता हूं कि ये तार्किक सीपीयू होने चाहिए और physcसंख्याओं के बिना , मुझे लगता है कि इन मूल्यों के साथ मैं बहुत कुछ नहीं कर सकता। मैंने Uविभिन्न समीकरणों में मूल्य का उपयोग करने की कोशिश की है लेकिन मुझे कुछ भी समझदार नहीं मिला है। यह मेरे लिए भी स्पष्ट नहीं है कि समग्र निष्क्रिय प्रतिशत अंकित मूल्य पर लिया जा सकता है।

नोट : सर से इस डेटा को कैप्चर करने में कुछ गड़बड़ है, यह # 1 के लिए पूरी तरह से मान्य उत्तर है, अगर ऐसा है तो इसे हमेशा लौटना चाहिए।


आप उस आउटपुट को प्राप्त करने के लिए क्या कमांड चला रहे हैं? यह मानक sar -P ALLआउटपुट की तरह नहीं दिखता है ।
स्विस

@Swiss यह एक स्क्रिप्ट से आ रहा है जिसे मैंने नहीं लिखा था। यह कॉल sar -P ALL 1 1करता है और फिर सीपीयू नंबर को तोड़ने के लिए awk का उपयोग करता है और फिर उपयोगकर्ता, सिस्टम, IO- प्रतीक्षा, और निष्क्रिय प्रतिशत। मैं आपके उत्तर में और जानकारी जोड़ूंगा।
जिमीजैम

@Swiss ने स्क्रिप्ट के आउटपुट के समान दिखने के बारे में अधिक प्रतिबिंबित होने के लिए उदाहरण को संपादित किया।
जिमीजैम

क्या आप sar -P ALLइस स्क्रिप्ट के आउटपुट के बजाय सीधे आउटपुट प्रदान कर सकते हैं ? यह एक गैर-मानक स्क्रिप्ट है और कोई भी आपको यह नहीं बता सकता है कि यह इसे देखे बिना क्या करता है।
स्विस

@ दुर्भाग्य से मैं नहीं कर सकता। मैं स्क्रिप्ट देख सकता हूं और यह आउटपुट है। क्या यह वर्णन करने से कुछ याद आ रहा है कि मैं क्या स्पष्ट कर सकता हूं?
जिम्मीजाम

जवाबों:


4

आपके द्वारा प्रदान किया गया आउटपुट मानक sar -P ALLया sar -uआउटपुट से भिन्न दिखता है । मुझे यकीन नहीं है कि यदि आप इसे स्वरूपित करते हैं, या यदि आप इसे किसी अन्य उपकरण के माध्यम से चला रहे हैं, लेकिन मुझे लगता है कि इसका पता लगाने के लिए पर्याप्त जानकारी है।

यहाँ के लिए मैन पेज से प्राप्त जानकारी का महत्वपूर्ण अंश है sar

नोट: एसएमपी मशीनों पर एक ऐसा प्रोसेसर होता है जिसमें कोई गतिविधि नहीं होती है (हर क्षेत्र के लिए 0.00) एक अक्षम (ऑफ़लाइन) प्रोसेसर है।

चूंकि आप क्लस्टर में चल रहे हैं, इसलिए यह मान लेना काफी सुरक्षित है कि आप एसएमपी मशीनों का उपयोग कर रहे हैं।

ध्यान दें कि उदाहरण 2 और 3 में, 24 कोर में से केवल 12 आंकड़े बता रहे हैं। यदि आप मानते हैं कि ये कोर अक्षम हैं, जैसा कि मैन पेज में वर्णित है, तो आंकड़े समझ में आते हैं।

आइए अपने डेटा को निम्नानुसार अपडेट करें, साथ एक अक्षम कोर को इंगित करने के लिए -

0   | 8       0   | 15      0   | 17
1   | 25      1   | 94      1   | 32
2   | 79      2   | 100     2   | 97
3   | 62      3   | 99      3   | 71
4   | 5       4   | 13      4   | 5
5   | 7       5   | 13      5   | 23
6   | 6       6   | 99      6   | 71
7   | 7       7   | 44      7   | 98
8   | 11      8   | 12      8   | 48
9   | 17      9   | -       9   | -
10  | 33      10  | -       10  | -
11  | 64      11  | -       11  | -
12  | 6       12  | 0       12  | 38
13  | 6       13  | -       13  | -
14  | 6       14  | -       14  | -
15  | 6       15  | -       15  | -
16  | 12      16  | 12      16  | 37
17  | 15      17  | -       17  | -
18  | 62      18  | -       18  | -
19  | 69      19  | -       19  | -
20  | 7       20  | 3       20  | 42
21  | 7       21  | -       21  | -
22  | 6       22  | -       22  | -
23  | 7       23  | -       23  | -

फिर हम औसत की गणना करने के लिए निम्नलिखित का उपयोग कर सकते हैं (यह एक त्वरित ऑनलाइनर है जिसे मैंने लिखा है, मुझे यकीन है कि कुछ बेहतर लिखा जा सकता है।)

$ awk '{idle = $3; output += idle; if (idle >= 0) {cores += 1} } END {printf "Ave idle%%: %f  Cores: %d\n", output / cores, cores }' input_file
Ave idle%: 22.208333  Cores: 24
$ awk '{idle = $6; output += idle; if (idle >= 0) {cores += 1} } END {printf "Ave idle%%: %f  Cores: %d\n", output / cores, cores }' input_file
Ave idle%: 42.000000  Cores: 12
$ awk '{idle = $9; output += idle; if (idle >= 0) {cores += 1} } END {printf "Ave idle%%: %f  Cores: %d\n", output / cores, cores }' input_file
Ave idle%: 48.250000  Cores: 12

ध्यान दें कि उदाहरण 2 और 3 में कोर की संख्या 12 है, और आपके उदाहरण के आउटपुट में जो आप देखते हैं उससे औसत मिलान होता है।

ऐसा लगता है कि आपके पहले और दूसरे मामले के बीच कुछ बिंदु हैं, आपके आधे सीपीयू कोर को अक्षम कर दिया गया है।

आपके प्रश्नों पर एक त्वरित सारांश:

  1. डेटा गुम होने का मतलब है कि प्रोसेसर कोर अक्षम है।
  2. Uऔसत लाइन की तुलना में अलग है Uकि आदमी पेज में। Uआदमी पेज में निर्दिष्ट प्रोसेसर आईडी स्तंभ के अंतर्गत दिखाई देने लगेगा।
  3. आपके द्वारा प्रदान किया गया sarआउटपुट मानक आउटपुट से अलग है और यह निर्धारित करने के लिए पर्याप्त जानकारी उपलब्ध नहीं है कि औसत लाइन किस पर Uया किस allपर संदर्भित है। हालांकि सक्रिय कोर पर पहला नंबर निष्क्रिय% प्रतीत होता है।

"ध्यान दें कि उदाहरण 2 और 3 में कोर की संख्या 12 है, और आपके उदाहरण के आउटपुट में जो आप देखते हैं उससे औसत मिलान होता है।" क्षमा करें, मैं स्पष्ट नहीं हो सका, मैंने संख्याओं से औसत की गणना की। वह सर से नहीं आ रहा है। Uऔर allमूल्यों लाइनों के रूप में खोज एवं बचाव से आ रहे हैं। मैंने अपने उत्तर में उन्हें तोड़ दिया क्योंकि वे बुनियादी तौर पर सीपीयू मूल्यों से अलग चीजें हैं, जो मैं समझता हूं।
जिमीजैम

यदि कोर अक्षम हैं, तो केस 3 के मुकाबले 'सिस्टम-वाइड' बेकार समय इतना कम क्यों है? मैं यह समझने के लिए संघर्ष कर रहा हूं कि एक ही 12 cpus में लगभग एक ही औसत निष्क्रिय समय कैसे हो सकता है और फिर भी सिस्टम-वाइड निष्क्रिय समय पूरी तरह से अलग हो सकता है।
जिमीजैम्स

मैं देखता हूं कि जब मशीनें लगातार लोड में होती हैं, तो मैं हर प्रोसेसर से आउटपुट देखता हूं। यह मुझे सुझाव देगा कि आप सही हैं कि ये अक्षम हैं। मैं बस इस बात से जूझ रहा हूं कि कैसे सिस्टम वाइड आइडल नॉन-डिसेबल्ड सीपीस के आइडल से संबंधित है।
जिमीजैम

मैंने समस्या को स्पष्ट करने के लिए कुछ बदलावों के साथ अपने प्रश्न को अपडेट किया। तो मामले 2 को देखते हुए, यदि 12 cpus अक्षम हैं, और sys-idle प्रतिशत सभी 24 पर आधारित थे, तो निष्क्रिय% 50% से नीचे नहीं जा सकता था। तो यह देखते हुए कि मेरे पास 15% है अर्थात sys आइडल% अक्षम CPUs को अनदेखा करना चाहिए, है ना?
जिमीजैम
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.