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

सिस्टम लोड और लोड एवरेज को समझना: उनका अर्थ और महत्व

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

$ 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) में दिखाती हैं।

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

सिस्टम लोड

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

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

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

लोड एवरेज

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

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

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

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

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

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

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

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

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

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

लोड एवरेज पढ़ना

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

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

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

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

  1. RBS: रूबी का नया टाइप एनोटेशन सिस्टम समझाया गया RBS: रूबी का नया टाइप एनोटेशन सिस्टम समझाया गया

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

  1. रूबी के साथ इंसर्शन सॉर्ट में महारत: एक चरण-दर-चरण गाइड रूबी के साथ इंसर्शन सॉर्ट में महारत: एक चरण-दर-चरण गाइड

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

  1. शेल इनिशियलाइज़ेशन फ़ाइलें और यूजर प्रोफाइल मास्टर करना: लिनक्स एडमिनिस्ट्रेटर्स के लिए गाइड शेल इनिशियलाइज़ेशन फ़ाइलें और यूजर प्रोफाइल मास्टर करना: लिनक्स एडमिनिस्ट्रेटर्स के लिए गाइड

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