Erlang 21 - 2. Observer

2 प्रेक्षक




erlang

2 प्रेक्षक

२.१ परिचय

प्रेक्षक एर्लांग प्रणालियों की विशेषताओं के अवलोकन के लिए एक चित्रमय उपकरण है। ऑब्जर्वर सिस्टम जानकारी, एप्लिकेशन सुपरवाइजर ट्री, प्रोसेस इंफॉर्मेशन, ईटीएस टेबल, मनेसिया टेबल प्रदर्शित करता है और इसमें एरलांग ट्रेसिंग के लिए फ्रंट एंड होता है।

२.२ प्रारंभ करना

सिस्टम के प्रभाव को कम करने के लिए एक स्टैंडअलोन नोड से ऑब्जर्वर चलाएं।

उदाहरण:

% erl -sname observer -hidden -setcookie MyCookie -run observer

मेनू नोड्स के साथ निरीक्षण करने के लिए नोड का चयन करें। मेनू दृश्य> अंतराल अंतराल को नियंत्रित करता है कि दृश्य को कितनी बार अद्यतन किया जाना है। ताज़ा अंतराल प्रति दर्शक सेट किया गया है ताकि आप प्रत्येक दर्शक के लिए अलग-अलग सेटिंग्स रख सकें। सिस्टम प्रभाव को कम करने के लिए, केवल सक्रिय दर्शक ही अपडेट किया जाता है। सक्रिय होने पर अन्य दृश्य अपडेट किए जाते हैं।

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

2.3 सिस्टम टैब

टैब सिस्टम सक्रिय Erlang नोड और इसके रनटाइम सिस्टम, जैसे बिल्ड कॉन्फ़िगरेशन, सिस्टम क्षमताओं और समग्र उपयोग के आँकड़ों के बारे में सामान्य जानकारी प्रदर्शित करता है।

2.4 लोड चार्ट टैब

टैब लोड चार्ट सक्रिय Erlang नोड पर वर्तमान संसाधन उपयोग के ग्राफ़ प्रदर्शित करता है।

ग्राफ Scheduler Utilization प्रति Scheduler Utilization दर्शाता है, जहां प्रत्येक शेड्यूलर उपयोग का एक अनूठा रंग होता है।

ग्राफ़ Memory Usage कुल मेमोरी उपयोग और प्रति मेमोरी श्रेणी उपयोग दिखाता है, जहां प्रत्येक श्रेणी का एक अनूठा रंग होता है। श्रेणियां इस प्रकार हैं:

Total

सभी मेमोरी श्रेणियों का योग।

Processes

सभी प्रक्रिया मेमोरी का योग।

Atom

परमाणु तालिका द्वारा प्रयुक्त आकार।

Binary

आवंटित किए गए सभी ऑफ-हाइप बायनेरिज़ का योग।

Code

कोड स्टोरेज के लिए आवंटित मेमोरी।

Ets

सभी ETS तालिकाओं के लिए उपयोग की गई मेमोरी।

ग्राफ IO Usage सिस्टम पर वर्तमान I / O लोड दिखाता है।

2.5 मेमोरी एलोकेटर टैब

टैब मेमोरी ऐलोकैटर्स वाहक आकार और वर्तमान मेमोरी कैरियर की विस्तृत जानकारी प्रदर्शित करता है। मेमोरी कैरियर्स के बारे में जानकारी के लिए, एप्लिकेशन ERTS में मॉड्यूल erts_alloc देखें।

Max Carrier size स्तंभ अंतिम नोड परिवर्तन के बाद से या आवेदन की शुरुआत के बाद से पर्यवेक्षक द्वारा देखे जाने वाले अधिकतम मूल्य को दर्शाता है, अर्थात स्विचिंग नोड अधिकतम कॉलम को रीसेट करेगा। मानों का नमूना लिया जाता है ताकि जो दिखाया गया है उससे अधिक मूल्य मौजूद हो सकते हैं।

2.6 अनुप्रयोग टैब

टैब एप्लिकेशन आवेदन जानकारी प्रस्तुत करता है। अपने पर्यवेक्षक वृक्ष को प्रदर्शित करने के लिए बाईं सूची में एक एप्लिकेशन का चयन करें। पेड़ में राइट-क्लिक विकल्प इस प्रकार हैं:

प्रक्रिया की जानकारी

निम्नलिखित सहित, चयनित प्रक्रिया पर एक विस्तृत जानकारी विंडो खोलता है:

प्रक्रिया की जानकारी

प्रक्रिया की जानकारी दिखाता है।

संदेश

प्रक्रिया संदेश दिखाता है।

शब्दकोश

प्रक्रिया शब्दकोश दिखाता है।

स्टैक ट्रेस

प्रक्रिया वर्तमान स्टैक ट्रेस दिखाता है।

राज्य

प्रक्रिया को दिखाता है।

लॉग

यदि सक्षम और उपलब्ध है, तो एसएएसएल लॉग प्रविष्टियों की प्रक्रिया दिखाता है।

ट्रेस प्रक्रिया

टैब ट्रेस अवलोकन के साथ चयनित प्रक्रिया पहचानकर्ता को जोड़ता है और प्रक्रिया जिस नोड पर रहती है।

ट्रेस नाम की प्रक्रिया

प्रक्रिया का पंजीकृत नाम जोड़ता है। यह कई नोड्स पर ट्रेसिंग के दौरान उपयोगी हो सकता है, क्योंकि उस नाम के साथ प्रक्रिया तब सभी ट्रेस किए गए नोड पर पता लगाया जाता है।

ट्रेस प्रक्रिया पेड़

ट्रेस ओवरव्यू को टैब करने के लिए चयनित प्रक्रिया और नीचे दी गई सभी प्रक्रियाओं को जोड़ता है।

ट्रेस नाम प्रक्रिया पेड़

ट्रेस ओवरव्यू को टैब करने के लिए चयनित प्रक्रिया और नीचे दी गई सभी प्रक्रियाओं को जोड़ता है।

2.7 प्रक्रियाएँ टैब

टैब प्रक्रियाएं स्तंभों में प्रक्रिया की जानकारी सूचीबद्ध करती हैं। प्रत्येक प्रक्रिया के लिए निम्नलिखित जानकारी प्रदर्शित की जाती है:

पीआईडी

प्रक्रिया पहचानकर्ता।

रेड्स

प्रक्रिया पर निष्पादित कटौती की संख्या। इसे अंतिम अपडेट के बाद से संचित मूल्यों या मूल्यों के रूप में प्रस्तुत किया जा सकता है।

याद

प्रक्रिया का आकार, बाइट्स में, process_info(Pid,memory) लिए कॉल द्वारा प्राप्त किया जाता है।

MsgQ

प्रक्रिया के लिए संदेश कतार की लंबाई।

विकल्प प्रक्रिया की जानकारी माउस पॉइंटर के तहत प्रक्रिया पर एक विस्तृत जानकारी विंडो खोलती है, जिसमें निम्न शामिल हैं:

प्रक्रिया की जानकारी

प्रक्रिया की जानकारी दिखाता है।

संदेश

प्रक्रिया संदेश दिखाता है।

शब्दकोश

प्रक्रिया शब्दकोश दिखाता है।

स्टैक ट्रेस

प्रक्रिया वर्तमान स्टैक ट्रेस दिखाता है।

राज्य

प्रक्रिया को दिखाता है।

लॉग

यदि सक्षम और उपलब्ध है, तो एसएएसएल लॉग प्रविष्टियों की प्रक्रिया दिखाता है।

ध्यान दें

लॉग हैंडलर के रूप में log_mf_h साथ log_mf_h नोड पर शुरू होने के लिए लॉग को एप्लिकेशन एसएएसएल की आवश्यकता होती है। अवलोकित नोड को Erlang / OTP R16B02 या उच्चतर होना चाहिए। मेनू लॉग> टॉगल लॉग दृश्य पर क्लिक करते समय rb सर्वर को मनाया नोड पर शुरू नहीं किया जाना चाहिए। rb सर्वर मनाया नोड से बाहर निकलने या बदलने पर मनाया नोड पर रोक दिया जाता है।

विकल्प ट्रेस चयनित प्रक्रियाएँ टैब ट्रेव ओवरव्यू के साथ चयनित प्रक्रिया पहचानकर्ताओं को जोड़ता है और प्रक्रियाएँ जिस नोड पर रहती हैं।

विकल्प ट्रेस चयनित प्रक्रियाएं नाम से प्रक्रियाओं के पंजीकृत नाम को जोड़ता है। यह उपयोगी हो सकता है जब कई नोड्स पर ट्रेसिंग की जाती है, क्योंकि उस नाम के साथ प्रक्रियाएं तब सभी ट्रेस किए गए नोड्स पर ट्रेस की जाती हैं।

विकल्प किल प्रक्रिया क्रूरता से माउस पॉइंटर के तहत प्रक्रियाओं को मार डालती है, जो कि kill साथ एक एक्जिट सिग्नल भेजती है।

2.8 पोर्ट्स टैब

टैब पोर्ट स्तंभों में पोर्ट जानकारी सूचीबद्ध करता है। प्रत्येक पोर्ट के लिए निम्न जानकारी प्रदर्शित होती है:

ईद

पोर्ट पहचानकर्ता।

जुड़े हुए

पोर्ट के स्वामित्व वाली प्रक्रिया के लिए प्रक्रिया पहचानकर्ता।

नाम

बंदरगाह का पंजीकृत नाम, यदि कोई हो।

नियंत्रण

erlang:open_port/2 द्वारा निर्धारित कमांड का नाम erlang:open_port/2

स्लॉट

बंदरगाह का आंतरिक सूचकांक।

विकल्प पोर्ट जानकारी माउस पॉइंटर के तहत पोर्ट के लिए एक विस्तृत जानकारी विंडो खोलता है। उपरोक्त जानकारी के अलावा, यह लिंक और मॉनिटर भी दिखाता है।

विकल्प ट्रेस चयनित पोर्ट ट्रेस ओवरव्यू को टैब करने के लिए चयनित पोर्ट आइडेंटिफ़ायर और पोर्ट्स पर स्थित नोड्स को जोड़ता है।

विकल्प ट्रेस चयनित पोर्ट्स नाम से पोर्ट के पंजीकृत नाम को ट्रेस ओवरव्यू टैब में जोड़ता है। यह तब उपयोगी हो सकता है जब कई नोड्स पर ट्रेसिंग की जाती है, क्योंकि उस नाम वाले पोर्ट्स को तब सभी ट्रेस किए गए नोड्स पर ट्रेस किया जाता है।

विकल्प बंद erlang:port_close/1 निष्पादित करता है erlang:port_close/1 पोर्ट पर माउस पॉइंटर के नीचे।

2.9 टेबल व्यूअर टैब

टैब टेबल व्यूअर टेबल को सूचीबद्ध करता है। डिफ़ॉल्ट रूप से, ईटीएस टेबल प्रदर्शित किए जाते हैं जबकि अपठनीय निजी ईटीएस टेबल और ओटीपी अनुप्रयोगों द्वारा बनाई गई तालिकाओं का डिप्लोमा नहीं किया जाता है। "सिस्टम" ETS तालिकाओं, अपठनीय ETS तालिकाओं, या Mnesia तालिकाओं को देखने के लिए मेनू दृश्य का उपयोग करें।

तालिका सामग्री देखने के लिए डबल-क्लिक करें, या राइट-क्लिक करें और विकल्प दिखाएँ तालिका सामग्री । तालिका जानकारी देखने के लिए, तालिका का चयन करें और मेनू सक्रिय करें > तालिका जानकारी , या राइट-क्लिक करें और तालिका जानकारी का चयन करें।

आप regular expressions उपयोग कर सकते हैं और वस्तुओं की खोज कर सकते हैं, और उन्हें संपादित या हटा सकते हैं।

2.10 ट्रेस ओवरव्यू टैब

टैब ट्रेस अवलोकन अनुरेखण संभालता है। ट्रेस की जाने वाली प्रक्रिया या पोर्ट का चयन करके ट्रेस करें और उन्हें ट्रेस कैसे करें। प्रक्रियाओं के लिए, आप संदेश, फ़ंक्शन कॉल, शेड्यूलिंग, कचरा संग्रह और spawn , exit , और कई अन्य जैसे प्रक्रिया से संबंधित घटनाओं का पता लगा सकते हैं। बंदरगाहों के लिए, आप संदेश, शेड्यूलिंग और पोर्ट-संबंधित घटनाओं का पता लगा सकते हैं।

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

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

ध्यान दें

ट्रेस पैटर्न केवल अनुरेखण प्रक्रियाओं और बंदरगाहों पर लागू होते हैं।

अनुप्रयोग या प्रक्रिया टैब से प्रक्रियाएँ जोड़ी जाती हैं। पोर्ट्स टैब से पोर्ट जोड़े जाते हैं। एक विशेष नया पहचानकर्ता, जिसका अर्थ है कि सभी प्रक्रियाएँ, या पोर्ट, ट्रेस शुरू होने के बाद शुरू किए गए, बटन के साथ जोड़े जा सकते हैं 'नई' प्रक्रियाएँ और 'नए' पोर्ट जोड़ें , सम्मानपूर्वक।

प्रक्रियाओं या बंदरगाहों को जोड़ते समय, ट्रेस विकल्पों वाली एक विंडो प्रदर्शित की जाती है। चुने हुए विकल्प चयनित प्रक्रियाओं / बंदरगाहों के लिए निर्धारित हैं। विकल्पों को बदलने के लिए, प्रक्रिया या पोर्ट पर राइट-क्लिक करें और संपादन प्रक्रिया विकल्पों का चयन करें । सूची से किसी प्रक्रिया या पोर्ट को हटाने के लिए, क्रमशः राइट-क्लिक करें और निकालें प्रक्रिया या निकालें पोर्ट का चयन करें।

प्रोसेस / पोर्ट आइडेंटिफ़ायर द्वारा जोड़े गए प्रोसेस और पोर्ट्स नोड्स को जोड़ते हैं, ये प्रोसेस / पोर्ट नोड लिस्ट में रहते हैं। बटन जोड़ें नोड्स पर क्लिक करके या नोड्स सूची में राइट-क्लिक करके अधिक नोड्स जोड़े जा सकते हैं और ऐड नोड्स का चयन करें। नोड्स निकालने के लिए, उन्हें चुनें, फिर राइट-क्लिक करें और निकालें नोड्स चुनें

यदि फ़ंक्शन कॉल का पता लगाया जाता है, तो ट्रेस पैटर्न जोड़ें बटन पर क्लिक करके ट्रेस पैटर्न जोड़ा जाना चाहिए। एक मॉड्यूल, फ़ंक्शन (एस), और एक मैच विनिर्देश चुनें। यदि कोई फ़ंक्शन नहीं चुना जाता है, तो मॉड्यूल में सभी फ़ंक्शन का पता लगाया जाता है।

ट्रेस किए गए संदेशों के लिए ट्रेस पैटर्न भी जोड़ा जा सकता है। बटन जोड़ें पर क्लिक करें ट्रेस पैटर्न और भेजे गए संदेशों या प्राप्त संदेशों और एक मिलान विनिर्देश का चयन करें।

टूल में कुछ बेसिक मैच स्पेसिफिकेशन्स दिए गए हैं, और आप अपने खुद के मैच स्पेसिफिकेशन्स प्रदान कर सकते हैं। मैच विनिर्देशों का वाक्य विन्यास ERTS User's Guide में वर्णित है। मैच विनिर्देश के लेखन को सरल बनाने के लिए, उन्हें fun/1 रूप में भी लिखा जा सकता है। विवरण के लिए, एप्लिकेशन STDLIB में मॉड्यूल ms_transform देखें।

ट्रेस शुरू करने के लिए बटन स्टार्ट ट्रेस पर क्लिक करें। डिफ़ॉल्ट रूप से, ट्रेस आउटपुट एक नई विंडो में लिखा जाता है। विंडो बंद होने पर, या बटन बंद करने पर ट्रेस ट्रेस करने पर ट्रेसिंग बंद हो जाती है। मेनू विकल्प> आउटपुट के साथ ट्रेस आउटपुट को बदला जा सकता है। मैच विनिर्देशों सहित ट्रेस सेटिंग्स को एक फ़ाइल से बचाया या लोड किया जा सकता है।

ट्रेसिंग के बारे में जानकारी के लिए, एप्लिकेशन Runtime_Tools में मॉड्यूल dbg और अनुभाग में "Erlang में मैच विनिर्देशों" ERTS User's Guide और आवेदन STDLIB में मॉड्यूल ms_transform में देखें।