2015-12-07 5 views
18

मैं एडब्ल्यूएस लैम्ब्डा में उपलब्ध वर्चुअल प्रोसेसर कोर की अधिकतम संख्या खोजने की कोशिश कर रहा हूं। आधिकारिक दस्तावेज का तात्पर्य यह कॉन्फ़िगर किया गया स्मृति की मात्रा के साथ मापता है कि:एडब्ल्यूएस लैम्ब्डा में उपलब्ध वर्चुअल प्रोसेसर कोर की अधिकतम संख्या क्या है?

In the AWS Lambda resource model, you choose the amount of memory you want for your function, and are allocated proportional CPU power and other resources. For example, choosing 256MB of memory allocates approximately twice as much CPU power to your Lambda function as requesting 128MB of memory and half as much CPU power as choosing 512MB of memory.

हालांकि, निम्नलिखित स्निपेट चल मेरे Number of cores = 2 हो जाता है, भले ही मैं स्मृति requestable की सबसे अधिक राशि कॉन्फ़िगर करें: 1536 एमबी।

package example; 

import java.io.{ InputStream, OutputStream } 

class Main { 
    def main(input: InputStream, output: OutputStream): Unit = { 
    val result = "Number of cores = " + Runtime.getRuntime().availableProcessors() 
    output.write(result.getBytes("UTF-8")) 
    } 
} 

तो यहां क्या हो रहा है? क्या मैं उपलब्ध प्रोसेसर्स() का गलत उपयोग कर रहा हूं या गलत तरीके से गलत परिणाम दे रहा हूं? या क्या कुछ अन्य विन्यास हैं जिन्हें अधिक कोर प्राप्त करने की आवश्यकता है?

+2

आप भी faq का गलत व्याख्या कर रहे हैं ... याद रखना कि सबकुछ वर्चुअलाइज्ड है, वाक्यांश "आनुपातिक CPU पावर" हाइपरवाइजर द्वारा नौकरी के लिए आवंटित उपलब्ध CPU चक्रों के अनुपात को भी संदर्भित कर सकता है (यदि आपको अनुमति है, उदाहरण के लिए , 25%, हाइपरवाइजर कोर की संख्या को स्केल करने के बजाए, अन्य ~ 75% "चोरी" करेगा। –

+0

आप और कोर क्यों चाहते हैं? –

उत्तर

20

एडब्ल्यूएस लैम्ब्डा documentation और forum के अनुसार, एडब्ल्यूएस यह नहीं बताता कि इस सेवा के लिए एडब्ल्यूएस किस उदाहरण प्रकार का उपयोग करता है। 2014 के अंत में, एडब्ल्यूएस ने गणना-अनुकूल-उदाहरणों के साथ-साथ उपयोग किया। और अब, एडब्ल्यूएस सामान्य प्रयोजन-उदाहरणों के समान उपयोग करता है।

सीपीयू शेयर एक समारोह के लिए समर्पित अपने आबंटित स्मृति के अंश, दो कोर के प्रत्येक प्रति पर ही आधारित होता। उदाहरण के लिए, उदाहरण के साथ ~ 3 जीबी मेमोरी लैम्ब्डा फ़ंक्शंस के लिए उपलब्ध है जहां प्रत्येक फ़ंक्शन में 1 जीबी मेमोरी का अर्थ हो सकता है, आप सीपीयू के ~ 1/3 * 2 कोर = 2/3 का उपयोग कर सकते हैं। विवरण भविष्य में फिर से संशोधित किए जा सकते हैं, लेकिन यह हमारे उपयोग मॉडल की आंशिक प्रकृति है।

आप केवल स्मृति के लिए आनुपातिक CPU पावर का उपयोग कर सकते हैं। हालांकि, निचली और उच्च मेमोरी एक ही उदाहरण में हैं, वे आनुपातिक सीपीयू पावर साझा करेंगे, जो उच्च स्मृति को अधिक CPU पावर मिलेगी। यदि आप अपना कुल सीपीयू कोर 2 पढ़ते हैं, तो इसका मतलब यह नहीं है कि आप सभी सीपीयू का पूरी तरह से उपयोग कर सकते हैं।

वर्तमान में, सीपीयू को कॉन्फ़िगर करने का कोई तरीका नहीं है। केवल कुल मेमोरी जिसे आप समायोजित कर सकते हैं।

+0

क्या आप साझा कर सकते हैं जहां आपने पाया कि वे सामान्य उद्देश्य जैसे लैम्ब्डा के उदाहरणों का उपयोग करते हैं? मुझे यह बिल्कुल नहीं मिल रहा है। – stephenbez

+1

दस्तावेज़ीकरण बदल दिया गया था। उस समय, प्रलेखन था: https://web.archive.org/web/20150905231931/http://docs.aws.amazon.com/lambda/latest/dg/resource-model.html –

9

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

तो आपके खाते में एक ही समय में 100 लैम्ब्डा फ़ंक्शन चल सकते हैं, जिन्हें आप 100 कोर के रूप में देख सकते हैं (हालांकि यह नहीं है)। यदि आप सीमा वृद्धि का अनुरोध करते हैं, तो यह 1000 या 10,000 या 100,000 भी हो सकता है।

एनालॉजी: 1 100-कोर कंप्यूटर रखने के बजाय, आपके पास 100 1-कोर कंप्यूटर हैं।

0

उत्तर आपके प्रश्न में है। यह लिखा है:

एडब्ल्यूएस लैम्ब्डा संसाधन मॉडल में, आप स्मृति की मात्रा है कि आप अपने कार्य के लिए चाहते हैं चुनते हैं, और आनुपातिक CPU शक्ति और अन्य संसाधनों आवंटित किए जाते हैं।

मुझे लगता है कि कोर की ऊपरी सीमा 2 है, लेकिन अन्य सीपीयू पैरामीटर अधिक हैं।

3

जबकि एडब्ल्यूएस ने आज तक एडब्ल्यूएस लैम्ब्डा कार्यों की प्रसंस्करण शक्ति के बारे में कोई विवरण नहीं दिया, अब उन्होंने announcing an increase of the maximum memory from 1536 MB to 3008 MB के बाद किया था। मल्टी-थ्रेडेड या बहु प्रक्रिया कोड अतिरिक्त प्रदर्शन का लाभ लेने के लिए आवश्यक है

कार्य 1536MB से बड़ा कई सीपीयू धागे आवंटित किए जाते हैं, और: उनके documentation अब कहा गया है।

उस आधार पर, हम निष्कर्ष निकाल सकते है कि, एक भी आभासी प्रोसेसर कोर उपलब्ध सभी एडब्ल्यूएस Lambda प्रकार्य स्मृति के ऊपर 1536 के लिए एमबी, जबकि अधिक स्मृति कार्यों दो कोर उपलब्ध है।

+0

"अब उनका दस्तावेज़ कहता है: ... "सिवाय इसके कि यह अब नहीं करता है। – Phil

+0

यह दस्तावेज़ों में अब नहीं बताया गया है। मुझे आश्चर्य है कि यह अभी भी सच है। – dashmug

+0

अफैइक यह अभी भी सच है। जनवरी के अंत से भी ये बेंचमार्क अभी भी सुझाव देते हैं: https://engineering.opsgenie.com/how-does-proportional-cpu-allocation-work-with-aws-lambda-41cd44da3cac यह वास्तव में एक शर्म की बात है कि एडब्ल्यूएस ने इसे हटा दिया दस्तावेज़ों से। – Dunedan

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