2016-04-06 7 views
5

मुझे उत्सुकता है कि दस्तावेज डीबी को आउटपुट करने के संबंध में एज़ूर फ़ंक्शंस पर काम करने वाला स्केलिंग कैसा है।एज़ूर फ़ंक्शन और दस्तावेज़ डीबी

असल में क्या होता है जब दस्तावेज़ डीबी 42 9 लौटाता है क्योंकि मैं अपने आवंटित थ्रूपुट से अधिक हूं? मैं पूछता हूं क्योंकि जब मेरे पास सबसे कम स्तर का एज़ूर फ़ंक्शन था जो दस्तावेज़ डीबी के निम्नतम स्तर के साथ संयुक्त था और 20 सेकंड में फ़ंक्शन को 1000 बार कॉल करने के लिए आगे बढ़ता था, तो मुझे केवल मेरे दस्तावेज़ डीबी संग्रह में 700-800 वास्तविक दस्तावेज़ डाले गए थे। जब मैंने दस्तावेज डीबी को अधिकतम सबसे कम फ़ंक्शन स्तर के साथ अधिकतम तक स्केल किया, तो मुझे अपने डॉक्टर डीबी संग्रह में केवल 700-800 दस्तावेज़ प्राप्त हुए। हालांकि जब मैंने अधिकतम पर दस्तावेज़ डीबी के साथ अधिकतम तक फ़ंक्शन को स्केल किया तो मुझे सभी 1000 मिलते हैं। जब मैं डॉक डीबी को मिनट में छोड़ देता हूं तो मुझे केवल 300ish मिल जाता है .... हालांकि ऐसा लगता है कि मैंने दस्तावेज़ को लॉक कर दिया है डीबी खाता अप करें और यह अभी भी सम्मिलित होने तक पुनः प्रयास कर रहा है।

इसलिए मैं उलझन में हूं क्योंकि यह स्केलिंग है और अगर मुझे कुछ अंतर्दृष्टि मिल सकती है तो मैं फ़ंक्शन या ऐप के विभिन्न पहलू को बेहतर ढंग से ट्यून कर सकता हूं।

उत्तर

6

हां, यह वर्तमान में 42 9 पर पुनः प्रयास करता है, जो डीओसीडीबी प्रतिक्रिया के अनुसार सुझाए गए समय का इंतजार कर रहा है। वर्तमान में कोई पूर्ण टाइमआउट नहीं है, इसलिए वे तब तक जारी रहेगा जब तक वे प्राप्त नहीं हो जाते हैं (यदि यह अपेक्षित व्यवहार है तो मैं अभी दोबारा जांच कर रहा हूं)।

अपने पहले परिदृश्य में, यदि आप थ्रॉटल को हटाने के लिए काफी देर तक प्रतीक्षा करते हैं, तो क्या सभी 1000 अंततः दिखाए जाते हैं?

मैं इसे दोहराने का प्रयास करना चाहता हूं - क्या आप अपने कार्य को सक्षम करने से पहले 1000 आइटमों को कतार में चिपका रहे हैं? या इसे किसी अन्य तरीके से बुला रहा है?

चल रहा है कि विशिष्ट पुन: प्रयास करें कोड यहाँ है यदि आप उत्सुक हैं: https://github.com/Azure/azure-webjobs-sdk-extensions/blob/master/src/WebJobs.Extensions.DocumentDB/DocumentDBUtility.cs#L36

+0

मैं http के माध्यम से समारोह को ट्रिगर कर रहा हूँ के बाद से मैं नहीं मानता सेवा बस ग # में चलाता है कर रहे हैं वर्तमान में कार्यात्मक (हालांकि कि परिवर्तित हो सकती है चूंकि यह इस समय तेजी से बदल रहा है)। इसलिए मैं http के माध्यम से सभी 1000 को ट्रिगर करता हूं, मैं लोडर.ओ का उपयोग कर रहा हूं ताकि यह मेरे कोड के भीतर एक वेब एपीआई एंडपॉइंट को कॉल कर सके जो बदले में फंक्शन को ट्रिगर करने के लिए http पोस्ट को सक्रिय करता है। Loader.io परीक्षण 20 सेकंड के लिए 50 अनुरोध/सेकंड चलाने के लिए सेट है। – steveko23

+0

यदि फ़ंक्शन अंततः खत्म हो जाता है तो मुझे 100% निश्चित नहीं है। मेरे आखिरी टेस्ट में कोई और रिकॉर्ड लिखा नहीं जा रहा था, लेकिन जब भी मैंने दस्तावेज़ डीबी संग्रह के साथ बातचीत करने की कोशिश की तो मुझे 42 9 मिल रहा था। इसलिए मैंने पूरे संग्रह को हटा दिया और इसे फिर से बनाया और फिर संग्रह में लिखे गए अतिरिक्त रिकॉर्ड देखे। तो ऐसा लगता है कि यह अभी भी कोशिश कर रहा था, लेकिन ऐसा लगता है कि यह एक अजीब स्थिति में था। – steveko23

+0

ठीक है, आज परीक्षण के एक समूह के बाद मुझे एहसास हुआ कि मैंने अपने अंतिम परिवर्तन में इस कोड से वास्तविक नींद को हटा दिया: https://github.com/Azure/azure-webjobs-sdk-extensions/commit/d39943965d45038ebddc7d4a2d729beab8a678aC# diff-6f209fbf17e36efd4d9ebc6a285cc00cL69। मैं इसे ठीक कर दूंगा और यह सत्यापित करने के लिए कुछ परीक्षण जोड़ूंगा कि यह फिर से नहीं होता है। जब यह फिक्स उपलब्ध होगा, तो मैं यहां वापस लिखूंगा और यह सुनिश्चित करने के लिए कि मैं इसका उपयोग करता हूं, मैं कुछ और परीक्षण करने की कोशिश करूंगा। इस बात की जानकारी देने के लिए धन्यवाद! – brettsam

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