2012-06-07 17 views
8

जब मैं Azure पर एक कार्यकर्ता भूमिका उदाहरण चलाता हूं, तो क्या यह एक साझा होस्ट (जैसे EC2) में चल रहा एक पूर्ण VM है? या यह एक साझा प्रणाली (जैसे Heroku) में चल रहा है?क्या एक विंडोज़ एज़ूर कार्यकर्ता भूमिका एक संपूर्ण वीएम है?

उदाहरण के लिए, यदि मेरा एप्लिकेशन 100 जीबी मेमोरी का अनुरोध करना शुरू करता है तो क्या होगा? क्या सीमाओं (á la Google App Engine) के उल्लंघन के लिए स्वचालित रूप से इसे बंद कर दिया जाएगा, या क्या यह सिर्फ वीएम को समाप्त कर देगा, ताकि Azure fabric इसे पुनरारंभ कर सके?

क्या दो भूमिकाएं एक ही सिस्टम में चलती हैं?

उत्तर

10

यह एक संपूर्ण वीएम है, और आवंटित संसाधन सीधे 1.75 जीबी (छोटे) से 14 जीबी (एक्सएल) से 1-8 कोर के साथ चुनने वाले वीएम के आकार पर आधारित होते हैं। 768 एमबी रैम और साझा कोर के साथ एक अतिरिक्त लघु उदाहरण भी है। पूर्ण वीएम आकार के विवरण here हैं।

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

अपने वीएम के साथ, यदि आप संसाधन में बहुत अधिक आवंटित करने का प्रयास करते हैं तो आपको मारने के बारे में चिंता करने की ज़रूरत नहीं है: यह मशीन होने जैसा है, और आप वहां से परे नहीं जा सकते हैं।

जहां तक ​​दो भूमिकाएं एक ही प्रणाली पर चल रही हैं: प्रत्येक भूमिका के उदाहरण हैं, और जैसा कि मैंने उपर्युक्त उल्लेख किया है, कई उदाहरणों के साथ, आपके उदाहरण गलती डोमेन में विभाजित हैं। यदि, कहें, आपके पास 4 उदाहरण और 2 गलती डोमेन थे, तो यह संभव है कि आपके पास एक ही रैक (या शायद एक ही सर्वर) पर दो उदाहरण हो।

+0

पुन: अंतिम पैराग्राफ। लेकिन दो उदाहरण अभी भी अलग-अलग वीएम में होंगे, है ना? –

+1

पुन: "अपने वीएम के साथ ..." क्या Azure डिस्क पर स्वैप करना शुरू कर देता है अगर मैं एक ट्रेसहोल्ड तक बहुत अधिक मेमोरी मांगता हूं, या क्या मुझे तुरंत मेमोरी त्रुटि मिल जाएगी? –

+1

उदाहरण एक ही वीएम में कभी संयुक्त नहीं होते हैं। और डिस्क-स्वैपिंग और आउट-ऑफ-मेमोरी स्थितियों के बारे में: सबकुछ वर्चुअलाइज्ड है। जबकि मैं एक पूर्ण निश्चित उत्तर नहीं दे सकता, आप कल्पना कर सकते हैं कि प्रत्येक भौतिक बॉक्स में पूर्ण 8-कोर, 14 जीबी (एक्सएल) वीएम का समर्थन करने के लिए पर्याप्त संसाधन हैं। इसका मतलब यह भी है कि कई छोटे वीएम का समर्थन करने के लिए पर्याप्त भौतिक क्षमता है। –

3

मैंने इसे जांचने के लिए एक त्वरित परीक्षण चलाया। मैं एक "छोटा" उदाहरण उपयोग कर रहा हूं जिसमें 1,75 गीगाबाइट मेमोरी की तरह कुछ है। मेरा कोड ArrayList का उपयोग बड़े सरणी के संदर्भों को संग्रहीत करने के लिए करता है ताकि उन सरणी एकत्रित कचरे न हों। प्रत्येक सरणी एक बिलियन byte एस है और इसे आवंटित करने के बाद मैं एक लूप चलाता हूं जो प्रत्येक तत्व को शून्य पर सेट करता है और फिर यह जांचने के लिए एक और लूप होता है कि प्रत्येक तत्व शून्य है यह सुनिश्चित करने के लिए कि स्मृति वास्तव में ऑपरेटिंग सिस्टम से आवंटित की गई है (सुनिश्चित नहीं है कि यह महत्वपूर्ण है सी # में, लेकिन यह वास्तव में सी ++ में mattered)। एक बार सरणी बनने के बाद, लिखा और पढ़ा जाता है, इसे ArrayList में जोड़ा जाता है।

तो मेरे कोड ने सफलतापूर्वक पांच ऐसे एरे आवंटित किए और छठे स्थान आवंटित करने का प्रयास System.OutOfMemoryException में हुआ। चूंकि 5 बिलियन बाइट्स प्लस ओवरहेड निश्चित रूप से अधिक है कि मशीन को आवंटित 1,75 गीगाबाइट्स भौतिक मेमोरी मुझे लगता है कि यह साबित करता है कि पृष्ठ फ़ाइल वीएम पर सक्षम है और व्यवहार सामान्य विंडोज सर्वर 2008 के समान है जो प्रेरित द्वारा की गई सीमाओं के समान है वह मशीन जहां यह चल रही है।

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