मैं जानना चाहूंगा कि क्या Red-Hat आधारित linux का आउटपुट अलग तरह से किसी डेबियन आधारित linux द्वारा व्याख्या किया जा सकता है।
प्रश्न को और भी विशिष्ट बनाने के लिए, मैं जो कुछ भी हूं उसके बाद, यह समझ रहा हूं कि top
Red-Hat सिस्टम पर कमांड की पहली पंक्ति से "लोड औसत" की व्याख्या कैसे की जाती है और आधिकारिक प्रलेखन आरओ कोड द्वारा इसे कैसे सत्यापित किया जाए।
[इस विषय से संपर्क करने के कई तरीके हैं, जिनमें से सभी प्रश्न के स्वीकार्य उत्तर हैं]
एक संभावित दृष्टिकोण, यह पता लगाना होगा कि यह जानकारी आधिकारिक रूप से कहां दर्ज की गई है।
एक अन्य, वह कोड संस्करण खोजना होगा top
जो विशिष्ट वितरण और संस्करण में बनाया गया है जिस पर मैं काम कर रहा हूं।
मुझे जो आउटपुट मिल रहा है वह है:
top - 13:08:34 up 1:19, 2 users, load average: 0.02, 0.00, 0.00
Tasks: 183 total, 1 running, 182 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.2%us, 0.2%sy, 0.0%ni, 96.8%id, 2.7%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 3922520k total, 788956k used, 3133564k free, 120720k buffers
Swap: 2097148k total, 0k used, 2097148k free, 344216k cached
इस मामले में मैं लोड औसत मूल्य की व्याख्या कैसे कर सकता हूं ?
मैंने यह पता लगाने में कामयाबी हासिल की है कि एक प्रलेखन स्रोत से औसत लोड अंतिम मिनट के बारे में है, और यह कि किसी अन्य दस्तावेज़ स्रोत द्वारा 100 से गुणा किए जाने के बाद इसकी व्याख्या की जानी चाहिए।
तो, सवाल
यह है कि क्या यह 0.02% या 2% भरी हुई है?
प्रलेखन स्रोत और संस्करण:
1) पहले एक के साथ सितारों
TOP(1) Linux User’s Manual TOP(1)
NAME
top - display Linux tasks
स्रोत: man top
मेरे रेडहैट वितरण में
उबंटू के पास "कार्यों" के साथ संस्करण भी है जो लोड औसत को स्पष्ट नहीं करता है:
http://manpages.ubuntu.com/manpages/precise/man1/top.1.html
2) दूसरे के साथ शुरू होता है
TOP(1) User Commands TOP(1)
NAME top
top - display Linux processes
स्रोत:
http://man7.org/linux/man-pages/man1/top.1.htm
3) यह एक के साथ शुरू होता है:
TOP(1)
NAME
top - display and update information about the top cpu processes
स्रोत: http://www.unixtop.org/man.shtml पहले एक, द्वारा देखा जा सकता में या में है और यह उत्पादन प्रारूप के लिए कोई स्पष्टीकरण नहीं है (और न ही के बारे में लोड औसत जिसमें मैं में दिलचस्पी है) । दूसरा एक, एक संक्षिप्त विवरण, उनका कहना लोड औसत पिछले 1 मिनट से कोई लेना देना नहीं है शामिल है, लेकिन अपने मूल्य की व्याख्या के बारे में कुछ भी नहीं है!
man top
RHEL
online ubuntu documentation
मैं दूसरे स्रोत से सीधे उद्धृत करता हूं:
2 ए। UPTIME और LOAD
इस हिस्से में एक एकल लाइन शामिल है:
प्रोग्राम या विंडो नाम, प्रदर्शन मोड के आधार पर
वर्तमान समय और समय की अंतिम बूट के बाद से अंतिम 1, 5 और 15 मिनट से अधिक
उपयोगकर्ता
सिस्टम लोड एवीजी की कुल संख्या।
इसलिए, यदि यह स्पष्टीकरण वास्तव में सही है, तो यह समझना पर्याप्त है कि लोड औसत पिछले 1 मिनट के बारे में है।
लेकिन यह संख्या के प्रारूप की व्याख्या नहीं करता है।
में तीसरे स्पष्टीकरण, यह कहा गया है कि:
लोड औसत के लिए संख्या निर्दिष्ट करते समय, उन्हें 100 से गुणा किया जाना चाहिए।
यह स्पष्टीकरण बताता है कि 0.02 का मतलब 2% है न कि 0.02%। लेकिन क्या यह सही है? इसके अतिरिक्त, क्या यह लिनक्स के सभी वितरणों के लिए सही है और संभावित रूप से अलग-अलग कार्यान्वयन है top
?
इस प्रश्न का उत्तर खोजने के लिए, मैंने इसे ऑनलाइन खोज कर कोड के माध्यम से जाने की कोशिश की। लेकिन मैंने पाया, कम से कम, दो अलग-अलग संस्करण top
आरएचईएल से संबंधित हैं! builtin-top.c
और पुनर्संशोधित top.c
। Red-Hat द्वारा कॉपीराइट के अनुसार दोनों नोटिस कोड की शुरुआत में कहते हैं और इस तरह तर्कसंगत लगते हैं कि RHEL इनमें से किसी एक का उपयोग करता है।
http://lxr.free-electrons.com/source/tools/perf/builtin-top.c
http://lxr.free-electrons.com/source/tools/perf/util/top.c
इसलिए, उस बहुत से कोड में जाने से पहले, मैं इस बारे में एक राय चाहता था कि सीपीयू लोड की व्याख्या कैसे की जाए, इस पर एक सटीक समझ बनाने के लिए कहाँ ध्यान केंद्रित किया जाए।
नीचे दिए गए उत्तरों में दी गई जानकारी से, कुछ व्यक्तिगत खोज के अलावा, मैंने पाया है कि:
1 - top
जो मैं उपयोग कर रहा हूं वह पैकेज प्रॉप्स 3.2.8 में निहित है। जिसका उपयोग करके सत्यापित किया जा सकता है top -v
।
2 - उस संस्करण में, procps-3.2.8
जिसे मैंने आधिकारिक वेबसाइट से डाउनलोड किया है, ऐसा लगता है कि टूल uptime
को सीधे procfs
फ़ाइल से इसकी जानकारी मिलती है /proc/loadavg
(लिनक्स फ़ंक्शन का उपयोग नहीं getloadavg()
)।
3 - अब top
कमांड के लिए भी यह फंक्शन का उपयोग नहीं करता है getloadavg()
। मैं यह सत्यापित करने में कामयाब रहा कि top
क्या वास्तव में इसके जैसी ही चीजें हैंuptime
उपकरण लोड औसत दिखाने के लिए। यह वास्तव में uptime
टूल के फ़ंक्शन को कॉल करता है, जो procfs
फ़ाइल से इसकी जानकारी प्राप्त करता है /proc/loadavg
।
तो, सब कुछ /proc/loadavg
फ़ाइल को इंगित करता है! इस प्रकार, load average
द्वारा उत्पादित की एक सटीक समझ बनाने के लिए top
, किसी को कर्नेल कोड को यह देखने के लिए पढ़ना चाहिए कि फ़ाइल कैसे loadavg
लिखी जाती है।
वहाँ भी एक उत्कृष्ट लेख में से एक है कि तीन के मूल्यों की एक आम आदमी की शर्तों की व्याख्या प्रदान करता है जवाब में बताया गया है loadavg
।
इसलिए, इस तथ्य के बावजूद कि सभी उत्तर समान रूप से उपयोगी और सहायक रहे हैं, मैं उस एक को चिह्नित करने जा रहा हूं जो
मेरे प्रश्न का उत्तर " http://www.linuxjournal.com//article/9001 " है। आप सभी के योगदान के लिए धन्यवाद!
इसके अलावा प्रश्न शीर्ष और लोड औसत को समझने से , मुझे कर्नेल के स्रोत कोड का एक लिंक मिला है जो उस स्थान पर इंगित करता है जहां loadavg
गणना की जाती है। जैसा कि लगता है कि यह काम करने के तरीके की व्याख्या करने वाली एक बड़ी टिप्पणी है, कोड का यह हिस्सा भी है C
!
कोड का लिंक http://lxr.free-electrons.com/source/kernel/sched/loadavg.c है।
फिर से मैं किसी भी तरह के साहित्यिक चोरी में संलग्न होने की कोशिश नहीं कर रहा हूं, मैं इसे पूर्णता के लिए जोड़ रहा हूं। इसलिए, मैं दोहरा रहा हूं कि कर्नेल कोड का लिंक अंडरस्टैंडिंग टॉप और लोड एवरेज में से एक उत्तर से मिला ...
top -v
)