0.00 का लोड औसत कैसे हो सकता है?


12

मैं समझता हूं कि लोड संतुलन यह मापने का एक तरीका है कि सीपीयू कितना व्यस्त है। हालाँकि, मुझे समझ नहीं आ रहा है कि कैसे एक लोड औसत 0.00मौजूद हो सकता है। कर्नेल हमेशा नहीं चलता है? सीपीयू लोड का हिस्सा नहीं है?


6
ध्यान दें कि अधिकांश मामलों में जो आप 0.00 के रूप में देखते हैं वह वास्तव में 0.0001 है या ऐसा ही है
प्लाज़्माएच

1
पुराने दिनों में यह रन कतार की औसत लंबाई थी। दूसरे शब्दों में, कितनी प्रक्रियाएं निष्पादित करने के लिए तैयार थीं (और I / O आदि की प्रतीक्षा नहीं कर रही थी)। अगर वहाँ कोई नहीं है यह 0.00 है। इन दिनों यह मेरे अनुभव में केवल तभी संभव है जब आप एक ग्राफिकल डेस्कटॉप नहीं बल्कि केवल जीयूआई-कम सर्वर चलाते हैं।
थोरबजोरन रावन एंडरसन

पूर्णता के लिए, मुझे लगता है कि यह बीएसडी में से एक था जो थोड़ी देर के लिए एक कर्नेल बग था जहां कर्नेल निष्क्रिय धागा को लोड औसत में गिना गया था, जिससे 1.00 का लोड औसत हो गया जब सिस्टम बिल्कुल भी कुछ नहीं कर रहा था। यह बहुत जल्दी तय हो गया।
बजे एक CVn

जवाबों:


16

समय की अवधि में लोड औसत उन प्रक्रियाओं की औसत संख्या है जो उस अवधि में सीपीयू के लिए प्रतिस्पर्धा कर रहे थे। "कर्नेल" नहीं चलता है अगर कुछ भी नहीं करना है; अधिक विशेष रूप से, अगर कुछ भी नहीं किया जाना है तो सीपीयू को एक विशेष "निष्क्रिय" धागा दिया जाता है जिसे गिना नहीं जाता है (और जो काम कर सकते हैं जैसे सीपीयू एक ऐसी स्थिति है जहां यह एक रुकावट की प्रतीक्षा करता है)।

इसलिए, उदाहरण के लिए, 5 मिनट से अधिक 0.6 का लोड औसत आमतौर पर इसका मतलब है कि उन 5 मिनटों के दौरान सीपीयू का उपयोग कुल 3 मिनट के लिए कुछ प्रक्रिया (एस) (या कर्नेल द्वारा), और कुल 2 मिनट के लिए किया गया था। बेकार था। लेकिन, जैसा कि @UKMonkey देखता है, इसका मतलब यह हो सकता है कि कुछ नहीं करने के साढ़े 4 मिनट के बाद, पिछले 30 सेकंड के लिए सीपीयू के लिए 6 प्रक्रियाओं ने प्रतिस्पर्धा की ...

सीपीयू बेकार है कोई प्रक्रिया नहीं है जो इसे कोड चलाने के लिए उपयोग करना चाहता है, क्योंकि सभी प्रक्रियाएं या तो इनपुट या आउटपुट ऑपरेशन के पूरा होने का इंतजार कर रही हैं या एक निश्चित भविष्य के समय पर जागने के लिए इंतजार कर रही हैं।

@ पैंथर के लिंक लोड एवरेज की अधिक गहन चर्चा प्रदान करते हैं।


1
5 मिनट के लिए 0.6 की लोड औसत का मतलब यह भी हो सकता है कि इसने साढ़े 4 मिनट तक कुछ नहीं किया - और फिर पिछले 30 सेकंड में सीपीयू समय की प्रतीक्षा करने वाली प्रक्रियाओं की एक महत्वपूर्ण संख्या थी ... यह इस बात का संकेत नहीं है कि कितना काम करता है सीपीयू ने किया है - लेकिन कितनी प्रक्रियाएं इसका उपयोग करने के लिए इंतजार कर रही हैं।
UKMonkey

@UKMonkey: बिल्कुल सही ... एवरेज औसत हैं और एक ही औसत कई तरीकों से प्राप्त किया जा सकता है। यह समझाने का उत्तर दिया कि मध्यम औसत का मतलब यह नहीं है कि चोटियाँ भी उचित हैं।
एलेक्सपी

13

एक लोड औसत एक उपाय है कि एक बार में इसका उपयोग करने की इच्छुक प्रक्रियाओं की संख्या के संदर्भ में सीपीयू कोर कितना अधिक भारित होता है।

निम्नलिखित एक ही कोर (एकल धागा) सीपीयू मान लेते हैं:

  • 0.0

    सीपीयू कुछ भी नहीं कर रहा है। यदि एक प्रक्रिया सीपीयू का उपयोग शुरू करने के लिए थी तो यह इसका उपयोग करने वाला एकमात्र होगा।

    एक निष्क्रिय सीपीयू का मतलब यह नहीं है कि कोई प्रक्रिया नहीं चल रही है। उदाहरण के लिए, पृष्ठभूमि सेवाएँ और कर्नेल अभी भी चल रहे हैं, और अभी भी मेमोरी पर कब्जा कर रहे हैं। वे बस किसी भी सीपीयू का उपयोग नहीं कर रहे हैं, क्योंकि वे कुछ भी नहीं कर रहे हैं।

  • 1.0

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

  • 1.0 से अधिक है

    सीपीयू अधिकतम उपयोग में है, और कई प्रक्रियाएं हैं जो इसे समवर्ती रूप से उपयोग करना चाहते हैं ताकि वे प्रभावी रूप से अधिक धीमी गति से चल रहे हों, अन्यथा वे निष्क्रिय सीपीयू पर चलने में सक्षम होंगे। उदाहरण के लिए, 3.0 का लोड औसत इंगित करता है कि प्रक्रियाएं एक तिहाई गति से चल रही हैं जो वे चलाना चाहते हैं। 50.0 का लोड औसत इंगित करता है कि प्रक्रियाएं 1/50 की गति से चल रही हैं, जो अन्य सभी प्रक्रियाओं को चलाने के कारण वे चलाना चाहते हैं। यही है, 1.0 से अधिक के आंकड़े दर्शाते हैं कि उपलब्ध सीपीयू को अधिक से अधिक प्रक्रियाओं के बीच बढ़ाया जा रहा है।

एक से अधिक कोर सीपीयू होने से यह नहीं पता चलता कि आंकड़ों का क्या मतलब है बल्कि उनकी व्याख्या बदल सकती है। उदाहरण के लिए, यदि आपके पास 4 कोर सीपीयू है, तो 1.0 का भार अभी भी एक कोर पर 100% सीपीयू का उपयोग करके एक प्रक्रिया के बराबर है, लेकिन तीन अन्य कोर हैं। तो 4 कोर सीपीयू पर, अधिकतम दक्षता का बिंदु 4.0 है, 1.0 नहीं - और जिस बिंदु पर सब कुछ 1/3 दक्षता पर चल रहा है वह 12.0 है, 3.0 नहीं। जटिलता में जोड़ने के लिए, एक एकल प्रक्रिया में एक से अधिक थ्रेड हो सकते हैं, जो प्रत्येक के स्वयं के सीपीयू का दावा करते हैं। तो एक एकल प्रक्रिया सभी 4 कोर के 100% का उपयोग कर सकती है यदि यह बहु-थ्रेडेड है।

महत्वपूर्ण लेख

CPU उपयोग केवल एक संसाधन है जो एक प्रक्रिया के प्रदर्शन को सीमित कर सकता है। I / O एक और है, और सीपीयू लोड में फैक्टर नहीं है। सीपीयू की एक निश्चित मात्रा का उपयोग करने वाली प्रक्रिया जरूरी नहीं कि लाइटर-लोडेड मशीन पर अधिक उपयोग करने में सक्षम हो क्योंकि वे अन्य बाधाओं को मार सकते हैं।

सबसे अच्छा लोड औसत क्या है

यह वास्तव में इस बात पर निर्भर करता है कि आप क्या कर रहे हैं और क्या आप जवाबदेही पसंद करते हैं, या सीपीयू के लिए यथासंभव कठिन काम करते हैं।

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

किसी चीज़ के लिए जितना संभव हो उतना प्रतिक्रियाशील होना चाहिए (जल्दी से प्रतिक्रिया करें), लोड औसत कोर की संख्या की तुलना में कम से कम एक आरामदायक मार्जिन होना चाहिए, जैसे कि आधा या एक तिहाई, जो किसी भी मंदी से पहले कुछ रुक-रुक कर होने की अनुमति देता है।

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


मैं देखना है कि कभी कभी धागे 'आई / ओ पर इंतजार कर "चौंका गया था लोड औसत में शामिल हैं serverfault.com/a/524818/27813 ऐसा लगता है ...
rogerdpack

@rodgerpack हाँ, Dराज्य प्रक्रियाओं को हमेशा लिनक्स में लोड औसत में शामिल किया जाता है। हाँ, यह भ्रामक है। हां, हमें मुख्य रूप से लोड एवीजी की तुलना में अन्य मैट्रिक्स को देखना चाहिए।
कुबंझक

2

0.00 का लोड औसत मूल रूप से इसका मतलब है कि आपका सिस्टम निष्क्रिय है और यह कि आपके सीपीयू में मापा समय के साथ कोई देरी या तनाव या अड़चन नहीं है।

इसका मतलब यह नहीं है कि आपका सीपीयू निष्क्रिय है, इसका मतलब सिर्फ इतना है कि यदि कोई प्रक्रिया सीपीयू समय चाहती है, तो कोई प्रतीक्षा नहीं है।

यह कहना मुश्किल है कि आपने क्या कम पोस्ट किया है क्योंकि यह इस बात पर निर्भर कर सकता है कि आपने अपना लोड (सिस्टम, प्रति उपयोगकर्ता?) और किस समय पर मापा है।

कुछ विवरण और दिलचस्प पढ़ने के लिए देखें

https://www.tecmint.com/understand-linux-load-averages-and-monitor-performance/

http://blog.scoutapp.com/articles/2009/07/31/understanding-load-averages

http://www.brendangregg.com/blog/2017-08-08/linux-load-averages.html

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.