निश्चित रूप से नहीं, लेकिन ज्यादातर पर 1.00*n_cpu
।
लोड का मतलब निम्न है: यदि एकल-सीपीयू प्रणाली पर कई प्रक्रियाएं हैं, तो वे समान रूप से समानांतर चल रहे हैं। लेकिन यह सच नहीं है। व्यावहारिक रूप से क्या होता है: कर्नेल एक प्रक्रिया में 1/100 वां सेकंड देता है, और फिर एक बाधा के साथ उसके चलने को तोड़ देता है। और अगली 1/100 वाँ दूसरी प्रक्रिया देता है।
व्यावहारिक रूप से सवाल, "किस प्रक्रिया को हमारा अगला 1/100 सेकंड का अंतराल मिलना चाहिए?", एक जटिल अनुमान के आधार पर तय किया जाएगा। इसे टास्क शेड्यूलिंग का नाम दिया गया है ।
बेशक, जो प्रक्रियाएं अवरुद्ध हैं, उदाहरण के लिए वे अपने डेटा का इंतजार कर रहे हैं जो वे डिस्क से पढ़ रहे हैं, इस कार्य समयबद्धन से छूट दी गई है।
लोड क्या कहता है: वर्तमान में कितनी प्रक्रियाएं अपने अगले 1/100 वें सेकंड के समय सीमा की प्रतीक्षा कर रही हैं। बेशक, यह एक औसत मूल्य है। ऐसा इसलिए है क्योंकि आप एक में कई नंबर देख सकते हैं cat /proc/loadavg
।
मल्टी-सीपीयू सिस्टम में स्थिति थोड़ी जटिल है। कई cpus हैं, जिनकी समय सीमा कई प्रक्रियाओं को दी जा सकती है। यह कार्य को थोड़ा समयबद्ध करता है - लेकिन बहुत अधिक नहीं - जटिल। लेकिन स्थिति वही है।
कर्नेल बुद्धिमान हैं, यह इष्टतम दक्षता के लिए सिस्टम संसाधनों को साझा करने की कोशिश करता है, और यह उस के पास में है (मामूली अनुकूलन चीजें हैं, उदाहरण के लिए यह बेहतर है अगर एक प्रक्रिया उसी समय पर सबसे लंबे समय तक संभव हो। कैपु विचार के कारण सीपीयू, लेकिन वे वहाँ कोई फर्क नहीं पड़ता)। ऐसा इसलिए है क्योंकि अगर हमारे पास लोड 8 है, तो इसका मतलब है कि: वास्तव में 8 प्रक्रियाएं हैं जो उनके अगली बार स्लाइस की प्रतीक्षा कर रही हैं। अगर हमारे पास 8 cpus हैं, तो हम इन समय स्लाइस को cpus को वन-वन-वन कर सकते हैं, और इस प्रकार हमारे सिस्टम का उपयोग बेहतर होगा।
यदि आप एक देखते हैं top
, तो आप देख सकते हैं कि वास्तविक चल रही प्रक्रियाओं की संख्या आश्चर्यजनक रूप से कम है: वे R
वहां द्वारा चिह्नित प्रक्रियाएं हैं । यहां तक कि वास्तव में कट्टर प्रणाली पर भी यह अक्सर नीचे नहीं होता है। यह आंशिक रूप से है क्योंकि डिस्क या नेटवर्क से उनके डेटा की प्रतीक्षा करने वाली प्रक्रियाएं भी निलंबित हैं ( S
ऊपर से चिह्नित )। लोड केवल सीपीयू उपयोग दिखाता है।
डिस्क लोड को मापने के लिए उपकरण भी हैं, क्योंकि उन्हें कम से कम cpu उपयोग की निगरानी के रूप में महत्वपूर्ण होना चाहिए, लेकिन किसी भी तरह यह हमारे पेशेवर sysadmin दुनिया में इतनी अच्छी तरह से ज्ञात नहीं है।
Windows उपकरण अक्सर लोड को cpus की वास्तविक संख्या के साथ विभाजित कर रहे हैं। यह कुछ पेशेवर विंडोज़ सिस्टम प्रशासक को इस विभाजित-बाय-सीपीयू अर्थ में सिस्टम लोड का उपयोग करने का कारण बनता है। आपके द्वारा यह समझाने के बाद वे सही नहीं हुए हैं और शायद अधिक खुश होंगे।
मल्टीकोर सीपीयू व्यावहारिक रूप से एक ही सिलिकॉन चिप पर कई सीपीयू होते हैं। इसमें कोई फर्क नही है।
हाइपरथ्रेडेड सीपीयू के मामले में एक दिलचस्प साइड इफेक्ट है: एक सीपीयू लोड करने से इसके हाइपरथ्रेडेड जोड़े धीमे हो जाते हैं। लेकिन यह एक गहरी परत पर होता है कि सामान्य कार्य शेड्यूलिंग हैंडल क्या है, हालांकि यह शेड्यूलर के प्रक्रिया-चलती निर्णयों को प्रभावित कर सकता है (और चाहिए)।
लेकिन हमारे वर्तमान दृष्टिकोण से - सिस्टम लोड क्या निर्धारित करता है - यह भी कोई फर्क नहीं पड़ता।