Erlang 21

erts_alloc_config




erlang

erts_alloc_config

मॉड्यूल

erts_alloc_config

मॉड्यूल सारांश

Erts_alloc के लिए कॉन्फ़िगरेशन उपकरण

विवरण

ध्यान दें

erts_alloc_config वर्तमान में एक प्रायोगिक उपकरण है और पिछड़े असंगत परिवर्तनों के अधीन हो सकता है।

erts_alloc(3) एक erts_alloc(3) रन-टाइम सिस्टम आंतरिक मेमोरी एलोकेटर लाइब्रेरी है। erts_alloc_config का उपयोग erts_alloc(3) कॉन्फ़िगरेशन के निर्माण में सहायता के लिए किया जाता है, जो सीमित संख्या में रनटाइम परिदृश्यों के लिए उपयुक्त है। जो कॉन्फ़िगरेशन erts_alloc_config उत्पादन करता है वह एक सुझाव के रूप में है, और इसे मैन्युअल रूप से समायोजित करने की आवश्यकता हो सकती है।

कॉन्फ़िगरेशन रनटाइम परिदृश्यों की संख्या के बारे में जानकारी के आधार पर बनाया जाता है। यह स्पष्ट रूप से असंभव हो सकता है कि हर रनटाइम परिदृश्य को देख सकें। महत्वपूर्ण परिदृश्य वे हैं जो विशिष्ट मेमोरी आवंटनकर्ताओं पर अधिकतम या न्यूनतम लोड का कारण बनते हैं। इस संदर्भ में लोड आवंटित किए गए मेमोरी ब्लॉकों का कुल आकार है।

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

एक कॉन्फ़िगरेशन निम्न तरीके से बनाया गया है:

  • आवंटन के विन्यास के निर्माण के लिए आप जिस Erlang रनटाइम सिस्टम का उपयोग करने जा रहे हैं, वह +Mea config कमांड-लाइन फ्लैग पास करें। यह उन सुविधाओं को अक्षम कर देगा जो erts_alloc_config को अपना काम करने से रोकती हैं। ध्यान दें, आपको बनाए गए कॉन्फ़िगरेशन का उपयोग करते समय इस ध्वज का उपयोग नहीं करना चाहिए। यह भी ध्यान रखें कि कॉन्फ़िगरेशन बनाते amount of schedulers आप amount of schedulers ही amount of schedulers का उपयोग करते हैं जितना महत्वपूर्ण है कि आप कॉन्फ़िगरेशन का उपयोग करके सिस्टम पर उपयोग कर रहे हैं।

  • अपने एप्लिकेशन को विभिन्न परिदृश्यों (अधिक बेहतर) के साथ चलाएं और save_scenario/0 कॉल करके प्रत्येक परिदृश्य के बारे में जानकारी सहेजें। यह जानना कठिन हो सकता है कि अनुप्रयोग कब हैं ( erts_alloc_config ) महत्वपूर्ण रनटाइम परिदृश्य। इसलिए एक अच्छा तरीका यह हो सकता है कि save_scenario/0 बार-बार कॉल किया जा सके, जैसे कि हर दसवां सेकंड। ध्यान दें कि आपके अनुप्रयोग रनटाइम परिदृश्यों तक पहुँचते हैं जो कि erts_alloc_config लिए महत्वपूर्ण हैं जब आप परिदृश्यों को सहेज रहे होते हैं; अन्यथा, कॉन्फ़िगरेशन खराब प्रदर्शन कर सकता है।

  • जब आपने सभी परिदृश्यों को कवर कर लिया है, तो कॉन्फ़िगरेशन बनाने के लिए make_config/1 कॉल करें। कॉन्फ़िगरेशन उस फ़ाइल को लिखा जाता है जिसे आपने चुना है। इस कॉन्फ़िगरेशन फ़ाइल को बाद में स्टार्टअप पर एक एरलांग रनटाइम-सिस्टम द्वारा पढ़ा जा सकता है। कमांड लाइन तर्क -args_file FileName को erl(1) कमांड में पास करें।

  • erts_alloc_config द्वारा निर्मित कॉन्फ़िगरेशन को पहले से ही कहा गया मैन्युअल रूप से समायोजित करने की आवश्यकता हो सकती है। erts_alloc_config द्वारा निर्मित फ़ाइल को संशोधित न करें; इसके बजाय, अपने संशोधनों को किसी अन्य फ़ाइल में डालें और erts_alloc_config द्वारा निर्मित फ़ाइल के बाद इस फ़ाइल को लोड करें। यही है, -args_file FileName तर्क रखें, जो बाद में कमांड-लाइन पर -args_file FileName तर्क से पढ़ता है, जो erts_alloc_config द्वारा निर्मित कॉन्फ़िगरेशन फ़ाइल को पढ़ता है। यदि मेमोरी आवंटन पैरामीटर कई बार दिखाई देता है, तो अंतिम संस्करण का उपयोग किया जाएगा, अर्थात, आप erts_alloc_config द्वारा निर्मित कॉन्फ़िगरेशन फ़ाइल में मापदंडों को ओवरराइड कर सकते हैं। इस तरह से करना उन चीजों को सरल करता है, जब आप erts_alloc_config को फिर से erts_alloc_config चाहते हैं।

ध्यान दें

erts_alloc_config द्वारा बनाया गया कॉन्फ़िगरेशन रनटाइम परिदृश्यों के लिए खराब, कभी भी भयानक प्रदर्शन कर सकता है, जो कॉन्फ़िगरेशन बनाते समय सहेजे गए लोगों से बहुत भिन्न होते हैं। इसलिए, यदि erts_alloc_config को फिर से चलाने की सलाह दी जाती है, यदि कॉन्फ़िगरेशन किए जाने के समय अनुप्रयोग चलते हैं, या कॉन्फ़िगरेशन किए जाने के बाद से अनुप्रयोगों पर लोड बदल गया है। यदि Erlang रनटाइम सिस्टम को बदला जाता है, तो आपको erts_alloc_config फिर से चलाने की सलाह दी जाती है।

erts_alloc_config रनटाइम परिदृश्यों के बारे में जानकारी को सहेजता है और स्वचालित रूप से शुरू होने वाले सर्वर में गणना करता है। सर्वर '__erts_alloc_config__' नाम के तहत खुद को पंजीकृत करता है।

निर्यात

save_scenario () -> ठीक | {त्रुटि, त्रुटि}

प्रकार

save_scenario/0 वर्तमान रनटाइम परिदृश्य के बारे में जानकारी बचाता है। इस जानकारी का उपयोग बाद में किया जाएगा जब make_config/0 , या make_config/1 कहा जाता है।

पहली बार save_scenario/0 को सर्वर कहा जाता है, शुरू किया जाएगा। यह सर्वर रनटाइम परिदृश्यों को बचाएगा। सभी सहेजे गए परिदृश्यों को make_config/0 कॉल करके हटाया जा सकता है।

make_config () -> ठीक | {त्रुटि, त्रुटि}

प्रकार

यह make_config/1 को कॉल करने के समान है।

make_config (FileNameOrIODev) -> ठीक है | {त्रुटि, त्रुटि}

प्रकार

make_config/1 erts_alloc कॉन्फ़िगरेशन का निर्माण करने के लिए पहले से सहेजी गई जानकारी को save_scenario/0 द्वारा उपयोग करता है। कम से कम एक परिदृश्य को बचाया जाना चाहिए था। पहले बनाए गए सभी परिदृश्यों का उपयोग कॉन्फ़िगरेशन बनाते समय किया जाएगा।

यदि FileNameOrIODev एक string() , तो make_config/1 फ़ाइल नाम के रूप में FileNameOrIODev का उपयोग करेगा। FileNameOrIODev नाम की एक फाइल बनाई गई है और उस फाइल को कॉन्फ़िगरेशन लिखा जाएगा। यदि FileNameOrIODev एक io_device() (मॉड्यूल io का प्रलेखन देखें) है, तो कॉन्फ़िगरेशन io डिवाइस को लिखा जाएगा।

रोक () -> ठीक है | {त्रुटि, त्रुटि}

प्रकार

सर्वर को रोकता है जो रनटाइम परिदृश्यों को बचाता है।

यह भी देखें

erts_alloc(3) , erl(1) , io(3)