2013-02-19 66 views
7

the documentation में यह बताता है कि एज़ूर टेबल स्टोरेज विभाजन में न्यूनतम 500 ऑपरेशन/सेकंड की गति है।एज़ूर टेबल स्टोरेज विभाजन व्यक्तिगत प्रदर्शन

यदि मेरा डेटा सही तरीके से विभाजित है, तो इन विभाजनों में से प्रत्येक पर समानांतर संचालन एक-दूसरे पर कोई असर नहीं पड़ेगा?

उदाहरण के लिए, यदि मुझे विभाजन ए (500 इकाइयों/सेकेंड पर अधिकतम) पर महंगा पूर्ण तालिका स्कैन करना होता है, तो क्या विभाजन बी पर होने वाले किसी भी ऑपरेशन का प्रदर्शन प्रभावित होगा?

स्टोरेज खातों की 5000 संचालन/सेकंड की सीमा है। क्या इसका अनिवार्य रूप से मतलब है कि मैं एक-दूसरे के प्रदर्शन को प्रभावित करने से पहले 10 विभाजनों को अधिकतम कर सकता हूं?

उत्तर

12

एक सामान्य नियम के रूप में, जब भी संभव हो, आप तालिका स्कैन से बचना चाहते हैं। वे बहुत महंगी परिचालन हैं (esp। यदि आपके पास बहुत सारे विभाजन हैं)। एक टेबल तनाव दृष्टिकोण से इतना ज्यादा नहीं, लेकिन उनके पास बहुत अधिक कुल विलंबता है (नीचे वर्णित)। उस ने कहा, कभी-कभी बस इसे टालने से कोई फायदा नहीं होता है।

हमने स्टोरेज आर्किटेक्चर को अपडेट किया है और लक्ष्य सीमाओं का एक गुच्छा उठाया है।

http://blogs.msdn.com/b/windowsazure/archive/2012/11/02/windows-azure-s-flat-network-storage-and-2012-scalability-targets.aspx

प्रत्येक भंडारण खाते में अब 20k IOPS/सेकंड है। प्रत्येक विभाजन अब 2k/sec

विभाजन कैसे इंटरैक्ट करते हैं थोड़ा सूक्ष्म है और इस पर निर्भर करता है कि उनका उपयोग कैसे किया जा रहा है (और समय के साथ बदलना)।

एज़ूर स्टोरेज में दो चरण हैं - सर्वरों का एक सेट श्रेणियों को संभालता है, दूसरा वास्तविक भंडारण सेट करता है (यानी 3 प्रतियां)। जब कोई तालिका ठंडी होती है, तो सभी विभाजनों को एक सर्वर द्वारा सर्विस किया जा सकता है। चूंकि विभाजन को लगातार तनाव के तहत रखा जाता है, इसलिए सिस्टम स्वचालित सर्वर पर वर्कलोड (यानी शार्ड) को स्वचालित रूप से फैलाना शुरू कर देगा। विभाजन सीमाओं पर बने होते हैं।

कम/मध्यम तनाव के लिए, आप थ्रेसहोल्ड को कभी भी शार्ड या केवल कम से कम बार नहीं दबा सकते हैं। इसके अलावा एक्सेस पैटर्न का कुछ प्रभाव होगा (यदि आप केवल जोड़ रहे हैं, तो शेडिंग मदद नहीं करेगा)। सभी पैटर्न में यादृच्छिक पहुंच अब तक का सबसे अच्छा होगा। जब सिस्टम रीबैलेंसेंस कर रहा है, तो आपको कुछ सेकंड के लिए 503 प्रतिक्रिया मिलेगी और फिर ऑपरेशन सामान्य हो जाएंगे।

यदि आप टेबल स्कैन करते हैं, तो आप वास्तव में तालिका में कई राउंड ट्रिप कर देंगे।जब कोई क्वेरी किसी विभाजन के अंत तक पहुंच जाती है तो प्रतिक्रिया किसी भी डेटा के साथ वापस आ जाएगी (या मानदंड पूरा नहीं होने पर कोई डेटा नहीं) और निरंतर टोकन। तब तक क्वेरी को फिर से सबमिट किया जाता है (और w/टोकन लौटाया जाता है) जब तक कि आप तालिका के नीचे नहीं जाते। यह एसडीके द्वारा संक्षेप में है, लेकिन यदि आपने सीधे आरईएसटी कॉल किए हैं तो आप इसे देखेंगे।

तालिका प्रदर्शन परिप्रेक्ष्य से, स्कैन केवल उस विभाजन को प्रभावित करेगा जिसमें वह वर्तमान में स्कैनिंग कर रहा है।

एक विस्तृत क्वेरी को गति देने के लिए जो कई विभाजनों को हिट करता है, आप वास्तव में इसे एकाधिक समानांतर पहुंच (जैसे प्रति विभाजन एक धागा) तक तोड़ सकते हैं और फिर क्लाइंट में सहवास कर सकते हैं। असल में यह इस बात पर निर्भर करता है कि आप कितना डेटा वापस प्राप्त कर रहे हैं, तालिका कितनी बड़ी है, आदि

6

आपके अवलोकन सही हैं, प्रत्येक विभाजन का प्रदर्शन स्वतंत्र है। लेकिन .. तालिका भंडारण का प्रदर्शन भी (ज्यादातर?) वीएम की बैंडविड्थ से प्रभावित है। यदि आप Azure pricing देखते हैं, तो 'I/O प्रदर्शन' के लिए एक कॉलम है और अतिरिक्त छोटी और छोटी मशीनों में 'लो' और 'मॉडरेट' I/O है। इसलिए यदि कोई मशीन केवल 10 एमबी/एस पर डेटा प्राप्त कर सकती है, तो तालिका भंडारण का प्रदर्शन काफी हद तक अप्रासंगिक है - यह भी ध्यान में रखते हुए कि वर्चुअलाइज्ड स्टोरेज (ओएस के हिस्से के रूप में) इस बैंडविड्थ का भी उपयोग करेगा।

5000/सेकेंड की स्टोरेज खाता सीमा का अर्थ है कि जब आप उस स्तर को मारना शुरू करते हैं तो आपको कुछ परिचालनों पर टाइमआउट मिल सकता है। सुनिश्चित करें कि आप किसी भी प्रकार के स्टोरेज खातों के लिए आर्किटेक्ट करते हैं, जैसे कि आगे सही तरीके से किया जाता है, तो उस प्रदर्शन छत के आसपास काम करना आसान है।

यदि आपको लगता है कि आप लोड के तहत टेबल संग्रहण डाल रहे हैं। सुनिश्चित करें कि आप कहां हैं, यह जानने के लिए पर्याप्त डायग्नोस्टिक्स के साथ कोड करें, और कुछ क्षणिक गलती हैंडलिंग को पुनः प्रयास करने के लिए अनुमति दें।