2011-11-25 16 views
5

मैं प्रोग्राम के निष्पादन के दौरान शेड्यूलिंग कैसे किया जाता है, इस बारे में जानकारी पुनर्प्राप्त करने का एक तरीका खोज रहा था: कौन सी प्रक्रियाएं शेड्यूलर हैं, यदि वे बदलती हैं, तो प्रत्येक शेड्यूलर पर कौन सी प्रक्रिया सक्रिय होती है, यदि प्रत्येक शेड्यूलर एक कोर आदि में चलाता है ...एरलांग वीएम: शेड्यूलर रनटाइम जानकारी

कोई विचार या संबंधित दस्तावेज/लेख/कुछ भी?

उत्तर

5

मैं आप निम्नलिखित ट्रेसिंग/रूपरेखा विकल्पों पर एक नज़र रखना सुझाव है:

erlang:system_profile/2

यह निगरानी अनुसूचक और रन कतार (runnable_procs) गतिविधि के लिए विकल्प हैं। अनुसूचक विकल्प

{profile, scheduler, Id, State, NoScheds, Ts} 

जहां राज्य आपको पता चलेगा कि यह सक्रिय है या नहीं रिपोर्ट करेंगे। NoScheds वर्तमान में सक्रिय शेड्यूलर की संख्या की रिपोर्ट करता है (यदि मुझे सही याद है)।

runnable_procs विकल्प आपको बताएगा कि किसी विशेष शेड्यूलर की रन कतार से कोई प्रक्रिया डाली या हटा दी गई है या नहीं।

+0

धन्यवाद! मेरे पास आर 14 ए था और यह हमेशा अनिर्धारित लौटाता है लेकिन मैंने R14B04 में अपग्रेड किया है और यह ठीक काम करता है: डी – raymond

+0

प्रक्रिया कतार पर होने पर प्रक्रिया सक्रिय होती है, न केवल जब यह वास्तव में चलती है, है ना? – raymond

+0

हां, इसे चलाने योग्य (रन कतार में) या वास्तव में चल रहे और निष्क्रिय अन्य दोनों सक्रिय माना जाता है। – psyeugenic

4

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

उदाहरण के लिए, मैंने simple one-liner लिखा है जो आपको एक प्रक्रिया में संदेश भेजने के बीच पास करने वाले नैनोसेकंड की संख्या दिखाता है और प्राप्तकर्ता प्रक्रिया निष्पादन के लिए निर्धारित किया जाता है (± क्रॉस-कोर घड़ी भिन्नता और प्रक्रियाओं के लिए कुछ नैनोसेकंड और इस तरह के)।

+0

मुझे ड्रेटा पसंद है, बहुत बुरा यह केवल मैक और सोलरिस (और कुछ अन्य) पर काम करता है लेकिन लिनक्स नहीं। @ डस्टिन, erlang/dtrace impl पर अच्छा काम। – psyeugenic

+0

सिस्टमटैप एक ही सामान करने के लिए काम करता है। आप हमेशा उस चीज़ पर काम कर सकते हैं जो लिनक्स या विंडोज नहीं है, यह जानने के लिए पर्याप्त है कि चीजें कैसे काम करती हैं और फिर उस ज्ञान को अपने लिनक्स परिनियोजन पर वापस लागू करें। – Dustin

+0

दिलचस्प, मैं निश्चित रूप से डीटी्रेस/सिस्टमट्रैप की जांच करूंगा! – raymond

संबंधित मुद्दे