Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Ruby

सिस्टम लोड और लोड औसत को समझना

top . जैसे टूल , uptime , w और AppSignal के होस्ट मेट्रिक्स लोड एवरेज . नामक एक मीट्रिक की रिपोर्ट करते हैं . यह मीट्रिक आपको उस भार के बारे में बताता है जिसके तहत आपका सिस्टम कई समय-सीमाओं में औसत रहा है।

$ uptime
10:14:14 up 60 days, 17:42,  1 user,  load average: 0.44, 0.28, 0.25

लोड औसत आमतौर पर तीन संख्याओं के रूप में प्रदर्शित होते हैं, जैसे uptime . से उदाहरण में के ऊपर। परिणाम के अंत में तीन नंबर अंतिम मिनट में औसत लोड दिखाते हैं (0.44 ), पिछले पांच मिनट में (0.28 ), और अंतिम पंद्रह (0.25 )।

AppSignal पर, पिछले आठ घंटों के लिए लोड औसत मिनट के हिसाब से और उससे अधिक समय-सीमा के लिए प्रति घंटे दिखाए जाते हैं।

सिस्टम लोड

यह समझने के लिए कि ये लोड औसत हमें क्या बताते हैं (और कब सतर्क होना चाहिए), हमें पहले यह समझना होगा कि सिस्टम लोड क्या है इसका मतलब है, और इसकी गणना कैसे की जाती है।

सिस्टम का लोड अनिवार्य रूप से किसी भी समय सक्रिय प्रक्रियाओं की संख्या है। निष्क्रिय होने पर, लोड 0 होता है। जब कोई प्रक्रिया शुरू होती है, तो लोड 1 से बढ़ जाता है। एक समाप्ति प्रक्रिया लोड को 1 से घटा देती है। चल रही प्रक्रियाओं के अलावा, कतारबद्ध किसी भी प्रक्रिया को भी गिना जाता है। इसलिए, जब एक प्रक्रिया सक्रिय रूप से सीपीयू का उपयोग कर रही हो, और दो अपनी बारी का इंतजार कर रहे हों, तो लोड 3 होता है।

अल्पकालिक प्रक्रियाओं के कारण लोड में तेजी से उतार-चढ़ाव होता है और मिलीसेकंड में शून्य से 5 तक कूद सकता है और अगले पल फिर से वापस आ सकता है। इस अस्थिरता के कारण, समय के साथ औसत लोड को देखना अधिक उपयोगी होता है, जो उस लोड का बेहतर अवलोकन देता है जिसके तहत सिस्टम रहा है।

लोड औसत

अब जब हम जानते हैं कि सिस्टम लोड की गणना कैसे की जाती है, तो हम लोड औसत पर एक नज़र डाल सकते हैं। जैसा कि हमने देखा है, सिस्टम जिस भार के अधीन है, उसे आमतौर पर समय के साथ औसत के रूप में दिखाया जाता है।

आम तौर पर, सिंगल-कोर सीपीयू एक समय में एक प्रक्रिया को संभाल सकता है। 1.0 के औसत भार का मतलब होगा कि एक कोर 100% समय व्यस्त है। यदि लोड औसत 0.5 तक गिर जाता है, तो CPU 50% समय से निष्क्रिय है।

यदि लोड औसत 1.5 तक बढ़ जाता है, तो सीपीयू हर समय व्यस्त रहता था, जबकि (औसतन) एक अन्य प्रक्रिया 50% समय की प्रतीक्षा कर रही थी, जिससे सीपीयू को उससे अधिक काम मिल रहा था जो वह संभाल सकता था।

लॉजिकल प्रोसेसर

अंगूठे का सामान्य नियम यह है कि लोड औसत मशीन में प्रोसेसर की संख्या से अधिक नहीं होना चाहिए। यदि प्रोसेसर की संख्या चार है, तो लोड आमतौर पर 4.0 से कम रहना चाहिए।

ध्यान रखें कि यह तार्किक संसाधकों से संबंधित है सीपीयू पर वास्तविक भौतिक के बजाय। हाइपर-थ्रेडिंग जैसे सॉफ़्टवेयर एब्स्ट्रैक्शन के कारण, लॉजिकल प्रोसेसर या प्रोसेसिंग थ्रेड्स की संख्या भौतिक प्रोसेसर कोर की संख्या से अधिक हो सकती है।

Linux पर तार्किक प्रोसेसर की मात्रा की जांच करने के लिए, /proc/cpuinfo में सूचीबद्ध प्रोसेसर की संख्या गिनें , या grep processor /proc/cpuinfo | wc -l , जो स्वचालित रूप से प्रोसेसर लाइनों की संख्या का प्रिंट आउट ले लेगा।

मैक पर, आप पूछ सकते हैं sysctl sysctl -n hw.ncpu . का उपयोग करके सीधे तार्किक प्रोसेसर की संख्या के लिए ।

एकाधिक तार्किक प्रोसेसर वाले सिस्टम के लिए, लोड औसत अधिक बढ़ सकता है, क्योंकि यह अधिक समवर्ती प्रक्रियाओं को चला सकता है। दो सीपीयू कोर वाली मशीन पर, 2.0 के औसत लोड का मतलब है कि दोनों सीपीयू का 100% उपयोग किया गया था, जबकि दो प्रक्रियाएं औसतन सक्रिय थीं।

<ब्लॉकक्वॉट>

हमारे रूबी प्रदर्शन निगरानी चेकलिस्ट में अन्य रूबी (ऑन रेल्स) प्रदर्शन लेखों पर एक नज़र डालें।

पढ़ने का औसत लोड

चूंकि यह प्रक्रियाओं की पूर्ण संख्या का औसत है, इसलिए यह निर्धारित करना मुश्किल हो सकता है कि उचित लोड औसत क्या है, और कब चिंतित होना चाहिए। सामान्य तौर पर, चूंकि आपका प्रत्येक सीपीयू कोर एक समय में एक प्रक्रिया को संभाल सकता है, सिस्टम तब तक ओवरलोड नहीं होता है जब तक कि यह 1.0 प्रति लॉजिकल प्रोसेसर से अधिक न हो जाए। डुअल-कोर सिस्टम पर (हाइपर-थ्रेडिंग के बिना), वह 2.0 होगा।

आम तौर पर, यह ठीक है अगर अंतिम मिनट के निशान में लोड औसत 1.0 प्रति कोर से ऊपर है, लेकिन पांच या पंद्रह मिनट के औसत में ऊंचा लोड एक समस्या का संकेत दे सकता है।

टिप :जब आपका लोड औसत एक निश्चित समय के लिए एक निश्चित मान से ऊपर रहता है, तो आपको अलर्ट खोलने के लिए ऐपसिग्नल की विसंगति का पता लगाया जा सकता है। वार्म-अप सेटिंग का उपयोग करते हुए, उदाहरण के लिए, जब आपका लोड 1.5 मिनट से ऊपर रहता है, तो हम आपको एक संदेश भेजेंगे।

क्या हमने लोड औसत के बारे में आपके सवालों का जवाब दिया, या क्या कुछ हिस्से अभी भी पूरी तरह से स्पष्ट नहीं हैं? कृपया हमें @AppSignal पर बताने में संकोच न करें। बेशक, हमें यह जानना अच्छा लगेगा कि आपको यह लेख कैसा लगा, या यदि आपके पास कोई अन्य विषय है जिसके बारे में आप और जानना चाहते हैं।


  1. आरबीएस को समझना, रूबीज न्यू टाइप एनोटेशन सिस्टम

    रूबी के लिए आरबीएस एक नए प्रकार की सिंटैक्स प्रारूप भाषा का नाम है। RBS आपको .rbs नामक एक नए एक्सटेंशन के साथ फाइलों में अपने रूबी कोड में टाइप एनोटेशन जोड़ने देता है . वे इस तरह दिखते हैं: class MyClass def my_method : (my_param: String) -> String end RBS के साथ टाइप एनोटेशन प्रदान करने से आ

  1. रूबी में इंसर्शन सॉर्ट को समझना

    नोट:रूबी के साथ विभिन्न सॉर्टिंग एल्गोरिदम को लागू करने पर विचार करने वाली श्रृंखला में यह भाग 4 है। भाग 1 ने बबल सॉर्ट की खोज की, भाग 2 ने चयन प्रकार की खोज की, और भाग 3 ने मर्ज सॉर्ट की खोज की। जैसा कि हम डेटा सॉर्ट करने के लिए विभिन्न तरीकों का पता लगाना जारी रखते हैं, हम इंसर्शन सॉर्ट की ओर रु

  1. लिनक्स में शेल इनिशियलाइज़ेशन फाइल्स और यूजर प्रोफाइल को समझना

    लिनक्स एक बहु-उपयोगकर्ता, समय साझा करने वाला सिस्टम है, जिसका अर्थ है कि एक से अधिक उपयोगकर्ता लॉग इन कर सकते हैं और सिस्टम का उपयोग कर सकते हैं। और सिस्टम एडमिनिस्ट्रेटर के पास विभिन्न पहलुओं को प्रबंधित करने का कार्य होता है कि कैसे अलग-अलग उपयोगकर्ता सॉफ़्टवेयर को इंस्टॉल/अपडेट/निकालने, प्रोग्राम