मैं यह कैसे निर्धारित कर सकता हूं कि मुझे अपने AWS RDS डेटाबेस के लिए कितने IOP चाहिए?


14

मैं AWS में एक mysql डेटाबेस का हिस्सा माइग्रेट कर रहा हूं। प्रश्न में डेटा 99% लिखता है, और प्रत्येक पंक्ति में लगभग 1k varchar फ़ील्ड, एक datetime और 4 ints होता है।

मेरा अनुमान है कि हमें पीक समय के दौरान सम्मिलित / घंटे के 20-25k रिकॉर्ड की आवश्यकता होगी।

मैं वर्तमान डेटाबेस पर iostat -h भागा, और इसने लगभग 40 tps की सूचना दी।

मुझे कैसे पता चलेगा कि मुझे किस प्रकार के IOPS की आवश्यकता होगी?

जवाबों:


11

आपको इसका परीक्षण करना होगा।

आप लिफाफे की गणना के कुछ हिस्से को I / Os प्रति सम्मिलित करने की संख्या को अनुमानित कर सकते हैं, इसे प्रति सेकंड लेन-देन की संख्या से गुणा कर सकते हैं, कुछ बफर रूम आदि में जोड़ सकते हैं, लेकिन इसे सिर्फ टेस्ट करना बहुत आसान है।

सबसे आसान बात यह है कि सबसे अच्छा अनुमान आवंटित करें, फिर वापस जाएं और वास्तविक विश्व परीक्षण से मेल खाने के लिए इसे बढ़ाएं या घटाएं। यह क्लाउड आधारित वातावरण का उपयोग करने की विलासिता में से एक है, हार्डवेयर परिवर्तन पूंजी लागत में कम हैं और ऐसे परिवर्तनों के लिए आमतौर पर केवल कॉन्फ़िगर अपडेट की आवश्यकता होती है। EBS वॉल्यूम के साथ आप IOPS की संख्या में वृद्धि नहीं कर सकते हैं, आपको वॉल्यूम का आकार 1 तक बढ़ाना होगा । आप हमेशा एक नया वॉल्यूम बना सकते हैं और अपने डेटा को कॉपी कर सकते हैं। कुछ डाउनटाइम होगा लेकिन यदि आप डेटा नहीं हैं तो यह बहुत बड़ा नहीं होना चाहिए क्योंकि यह एक रॉ कॉपी होगा।

यहाँ I / Os की संख्या का अनुमान लगाना आवश्यक है। फिर से यह सिर्फ एक अनुमान है, क्योंकि विशेषांक अनुक्रमितों की संख्या पर निर्भर करता है और क्या आपका ट्रैफ़िक प्रवाह सुचारू या स्पाइकी होगा। 25K tx / घंटा पर आपको ~ 7 tx / sec मिला है। प्रत्येक पंक्ति का आकार विशेष रूप से प्रासंगिक नहीं है क्योंकि यह एकल I / O (4K) के आकार से कम है। प्रत्येक लेनदेन 1-5 IOP (प्राथमिक सम्मिलित प्लस एक जोड़े सूचकांक पेड़ आवेषण) के बीच कहीं होगा तो हम कहते हैं ~ 35 / s।

मैं कहता हूं कि 100 IOPS के नंगे न्यूनतम के साथ शुरू करें और यदि आवश्यक हो तो बड़े पैमाने पर करें।


1
BTW, इसके अनुसरण के रूप में: हमने एक 300GB डेटाबेस स्थापित किया, और इसका मतलब था कि न्यूनतम 1000 IOPS। लगभग 6 महीने RDS पर रहने के बाद I / O मुद्दों के कारण हमें 0 घटनाएं हुईं। शायद overkill, लेकिन आग के करीब और भूल जाओ के रूप में आप प्राप्त कर सकते हैं।
क्रिस

आपके लोड के आधार पर - आपको प्रावधानित IOP की आवश्यकता नहीं है। जब तक आपको कुल 2500-3500 से अधिक IOP की आवश्यकता नहीं होगी, मानक भंडारण 300GB (EBS स्ट्रिपिंग के कारण) करेगा।
रॉस

7

मैंने वर्तमान में कितने iops का उपयोग किया था, इसका अंदाजा लगाने के लिए मैंने बेसिक iostat (iostat -h) टूल का इस्तेमाल किया। अगर मैंने 4 गुना से कम राशि का लोड लिया और उस राशि के साथ चला गया तो मैंने कितना अतिरिक्त उपयोग किया। मेरे लिए जो 780 IOPS के लिए काम करता था इसलिए मैं 800 IOPS के साथ गया।


iostat -h 40 tps के आसपास रिपोर्टिंग कर रहा है, तो क्या यह 40 iops के अनुरूप है? यह उन संख्याओं से मेल खाएगा जो @sehrope की गणना करते हैं।
क्रिस

1
यह सही है।
मार्क डी

0

मैं अपने आवेदन प्रदर्शन कर रहा है IOPS की राशि निर्धारित करने के लिए iostat का उपयोग करें। iostat इसे tps के रूप में रिपोर्ट करता है। केबी / टी आपको यह निर्धारित करने में मदद करता है कि ट्रांसफर की राशि चंक साइज़, 256 कीबी से कम है या नहीं। मैं iostat को एक दूसरे प्रतीक्षा समय यानी iostat -w 1 से चलाता हूं।


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.