Database
 sql >> डेटाबेस >  >> RDS >> Database

उचित Azure VM आकार चुनने का महत्व

ऑन-प्रिमाइसेस SQL ​​सर्वर इंस्टेंस को Azure वर्चुअल मशीन (VM) में माइग्रेट करना Azure में माइग्रेट करने का एक सामान्य तरीका है। आईटी पेशेवर वीसीपीयू, मेमोरी और स्टोरेज क्षमता के संबंध में वीएम के आकार को जानने से परिचित हैं। Microsoft संगठन की ज़रूरतों के लिए कई VM प्रकार और आकार प्रदान करता है। आपको Family . के रूप में संदर्भित प्रकार दिखाई देंगे Azure पोर्टल में VM को आकार देते समय।

VM प्रकार और आकार

माइक्रोसॉफ्ट ने कई तरह की वर्चुअल मशीन बनाकर चीजों को आसान बनाने में मदद की है। प्रकार मशीनों को उद्देश्य से परिभाषित करने के लिए तैयार हैं। विभिन्न प्रकार हैं:

  • सामान्य उद्देश्य - संतुलित सीपीयू-टू-मेमोरी अनुपात, छोटे से मध्यम डेटाबेस
  • अनुकूलित गणना - उच्च CPU-टू-मेमोरी राशन, मध्यम ट्रैफ़िक वेब सर्वर और एप्लिकेशन सर्वर
  • मेमोरी अनुकूलित - उच्च मेमोरी-टू-सीपीयू अनुपात, रिलेशनल डेटाबेस सर्वर, मध्यम से बड़े कैश और इन-मेमोरी एनालिटिक्स
  • भंडारण अनुकूलित - उच्च डिस्क थ्रूपुट और आईओ
  • GPU - भारी ग्राफिक रेंडरिंग और वीडियो संपादन
  • उच्च प्रदर्शन गणना - सबसे तेज और सबसे शक्तिशाली सीपीयू वर्चुअल मशीन

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

VM छवि विकल्प

SQL सर्वर के लिए एक छवि का चयन करते समय, आपके पास कई विकल्प होते हैं। आप केवल OS का चयन करना चुन सकते हैं, जैसे कि Linux या Windows, या आप पहले से स्थापित OS और SQL सर्वर के साथ एक छवि का चयन करना चुन सकते हैं। वर्तमान में मैं केवल ओएस के साथ छवि चुनना पसंद करता हूं ताकि मैं SQL सर्वर स्थापित कर सकूं और इसे अपनी पसंद के अनुसार कॉन्फ़िगर कर सकूं। जब आप गैलरी छवि को पहले से इंस्टॉल किए गए SQL सर्वर के साथ चुनते हैं, तो उस संस्करण के लिए ISO में शामिल सभी घटक स्थापित हो जाते हैं, और मुझे हमेशा एकीकरण सेवाओं या विश्लेषण सेवाओं को स्थापित करने की आवश्यकता नहीं होती है।

VM आकार के विचार

एज़्योर वीएम का चयन करना सीधे आगे लग सकता है, वीसीपीयू की संख्या, मेमोरी और आपके डेटाबेस को रखने के लिए पर्याप्त भंडारण के आधार पर आकार चुनने के साथ, हालांकि मैं ग्राहकों को भंडारण से संबंधित प्रदर्शन समस्याओं के साथ देख रहा हूं। वर्तमान आईओ और थ्रूपुट आवश्यकताओं को बेंचमार्क किए बिना विशेष रूप से वीसीपीयू, मेमोरी और स्टोरेज क्षमता पर आधारित वीएम चुनना आम प्रवृत्ति है। जब आप Azure पोर्टल में Azure VM बनाते हैं, तो आप निम्न के आधार पर विकल्पों को फ़िल्टर कर सकते हैं:

  • आकार
  • पीढ़ी
  • परिवार
  • रैम/मेमोरी
  • प्रीमियम स्टोरेज सपोर्ट
  • वीसीपीयू की संख्या
  • अल्पकालिक ओएस डिस्क

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

हालाँकि, जो प्रदर्शित नहीं होता है, वह प्रति VM में अनुमत थ्रूपुट की मात्रा है। थ्रूपुट डेटा ट्रांसफर दर को मेगाबाइट प्रति सेकंड में और स्टोरेज मीडिया से मापता है।

थ्रूपुट की गणना निम्न सूत्र का उपयोग करके की जा सकती है

एमबी/एस =आईओपीएस * केबी प्रति आईओ / 1,024

इस फॉर्मूले का उपयोग करते हुए, KB प्रति IO आपके ब्लॉक का आकार होगा। यदि आप 64k पर अपना डेटा और लॉग ड्राइव स्वरूपित कर रहे हैं, तो E2s_v3, E4-2s_v3, और E8-2s_v3 VMs के लिए 3,200, 6,400, और 12,800 IOPS के लिए सूत्र होगा:

एमबी/एस =3,200 * 64/1,024 या 200 एमबी/एस
एमबी/एस =6,400 * 64/1,024 या 400 एमबी/एस
एमबी/एस =12,800 * 64/1,024 या 800 एमबी/एस

64k ब्लॉक आकार वाले प्रत्येक VM के IOPS पर आधारित थ्रूपुट गणना बहुत खराब नहीं है। ये संख्याएं RAID के लिए किसी भी लिखित दंड को ध्यान में नहीं रखती हैं। मैंने इनमें से प्रत्येक वीएम को क्रिस्टलडिस्कमार्क का उपयोग करके परीक्षण के लिए रखा है। थ्रूपुट के लिए मुझे जो संख्याएँ मिलीं, वे गणनाओं के अनुमान के आस-पास कहीं नहीं थीं।

बेंचमार्क परीक्षण

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

  • E2s_v3 - 2 vCPU - 16GB RAM - 3,200 IOPS - 4 डेटा डिस्क तक का समर्थन
  • E4-2s_v3 - 2 vCPU - 32GB RAM - 6,400 IOPS - 8 डेटा डिस्क तक का समर्थन
  • E8-2s_v3 - 2 vCPU - 64GB RAM - 12,800 IOPS - 16 डेटा डिस्क तक समर्थन
  • P60 डेटा डिस्क - प्रीमियम SSD - 16,000 IOPS

प्रत्येक VM पर, मैंने 8TB क्षमता पर P60 प्रीमियम डिस्क का प्रावधान किया। इस डिस्क ने 16,000 IOPS का विज्ञापन किया, जो 64k ब्लॉक आकार के साथ 1,000 एमबीपीएस थ्रूपुट का समर्थन कर सकता है, हालांकि Azure दस्तावेज़ीकरण बताता है कि डिस्क 500 एमबीपीएस थ्रूपुट प्रदान करती है।

क्रिस्टलडिस्कमार्क विंडोज के लिए एक ओपन सोर्स डिस्क ड्राइव बेंचमार्क टूल है, और यह माइक्रोसॉफ्ट के डिस्कस्पड टूल पर आधारित है। यह टूल पढ़ने और लिखने के अनुक्रमिक और यादृच्छिक प्रदर्शन को मापता है।

टूल के शीर्ष पर कुछ ड्रॉप डाउन हैं। संख्या 5 चलाए जाने वाले परीक्षण के पुनरावृत्तियों की संख्या है। अगला 1GiB है, यह परीक्षण फ़ाइल का आकार है। वास्तविक उत्पादन परीक्षण के लिए, यह कैश को हिट करने से बचने में मदद करने के लिए पर्याप्त बड़ा होना चाहिए। संस्करण 7.0 64 जीबी फ़ाइल तक का समर्थन करता है। आखिरी वह ड्राइव है जिसके खिलाफ आप परीक्षण करना चाहते हैं।

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

मैंने P60 डिस्क पर 32 GiB फ़ाइल के साथ परीक्षण के 5 पुनरावृत्तियों को चलाने का विकल्प चुना जो कि ड्राइव E:.

था।

E2s_v3 VM अधिकतम 50 एमबीपीएस से कम है, जो कि हमारे द्वारा गणना किए गए 200 एमबी से बहुत कम है।

E4-2s_v3 VM अधिकतम 400 एमबीपीएस के बजाय 100 एमबीपीएस से कम है।

E8-2s_v3 VM अनुमानित 800 एमबीपीएस के बजाय 200 एमबीपीएस से कम है।

कम थ्रूपुट क्यों?

मेरी पिछली गणनाओं के आधार पर, 64k ब्लॉक आकार में 3,200 IOPS को 200MB थ्रूपुट का उत्पादन करना चाहिए, फिर भी मुझे उसके करीब संख्याएँ नहीं दिखाई दीं, जब तक कि मेरे पास VM पर 16,000 IOPS डिस्क नहीं थी जो 12,800 IOPS तक का समर्थन करती है। तर्क यह है कि प्रत्येक वीएम आकार में थ्रूपुट की सीमा होती है। यदि आप VMs के मेमोरी अनुकूलित परिवार के लिए प्रलेखन को देखते हैं, तो आप पाएंगे कि E2s अधिकतम अनकैश्ड डिस्क थ्रूपुट 3,200 IOPS / 48 एमबीपीएस है, E4s अधिकतम अनकैश्ड डिस्क थ्रूपुट 6,400 IOPS / 96 एमबीपीएस है, और E8s अधिकतम अनकैश्ड डिस्क है। थ्रूपुट 12,800 आईओपीएस / 192 एमबीपीएस है। ये संख्या क्रिस्टलडिस्कमार्क का उपयोग करके प्राप्त किए गए परिणामों से मेल खाती है।

भले ही आप बहुत बड़ी डिस्क आवंटित कर सकते हैं जिनमें बहुत सारे आईओपीएस हैं और जो उच्च थ्रूपुट संख्याओं का समर्थन करते हैं, वीएम आकार बहुत अच्छी तरह से आपके थ्रूपुट को सीमित कर सकता है।

किसी भी SQL सर्वर वर्कलोड को Azure में माइग्रेट करने से पहले अपनी वर्तमान थ्रूपुट आवश्यकताओं को बेंचमार्क करना एक बड़ी प्राथमिकता होनी चाहिए।

निष्कर्ष

मैं समझता हूं कि आईओपीएस माप की एक इकाई है जो डिस्क निर्माता और भंडारण विक्रेता प्रदान करते हैं, और यह ठीक है। हालाँकि, जब परीक्षण भंडारण की बात आती है, तो हम थ्रूपुट संख्याओं पर अधिक ध्यान केंद्रित करते हैं। यह सिर्फ एक गणित की समस्या है, लेकिन जब तक आप बेंचमार्किंग स्टोरेज के व्यवसाय में नहीं हैं और ब्लॉक आकार के आधार पर IOPS से थ्रूपुट की गणना नहीं कर रहे हैं, तब तक यह भ्रमित करने वाला हो सकता है।

मुझे जो परेशान कर रहा है वह यह है कि जब आप वीएम आकार का चयन करते हैं तो थ्रूपुट पर प्रतिबंध स्पष्ट नहीं होता है। भंडारण IO के लिए माप की इकाई IOPS है। 64k ब्लॉक आकार के साथ 3,200 IOPS में, मैं लगभग 200 एमबीपीएस हो सकता था, हालांकि मेरा वीएम 48 एमबीपीएस तक सीमित था। कई आईटी पेशेवरों ने पाया है कि उनके पास डिस्क प्रदर्शन के मुद्दे हैं और बेहतर प्रदर्शन की उम्मीद में उनके भंडारण को बड़ी और तेज डिस्क (अधिक आईओपीएस) तक बढ़ाया है, केवल यह पता लगाने के लिए कि यह उनकी समस्या का समाधान नहीं करता है। मुद्दा यह है कि VM का आकार उनके थ्रूपुट को सीमित कर रहा था। बड़े आकार के VM तक स्केलिंग करने से समस्या हल हो जाएगी, लेकिन यह एक लागत के साथ आता है। मेरे उदाहरण में, E4, E2 की लागत से दोगुना था, हालाँकि इसने उसी vCPU को बनाए रखते हुए मेमोरी और थ्रूपुट को दोगुना कर दिया। E8, E4 की लागत से दोगुना था और उसी vCPU को बनाए रखते हुए, थ्रूपुट और मेमोरी को दोगुना कर दिया। समान vCPU गणना बनाए रखने का अर्थ है कि मेरे पास मूल SQL सर्वर लाइसेंस लागत में कोई वृद्धि नहीं होगी।

अंततः, आपको अपनी वर्तमान थ्रूपुट आवश्यकताओं को बेंचमार्क करने की आवश्यकता है और सुनिश्चित करें कि आपकी आवश्यकताओं के लिए Azure VM, या कोई VM उचित रूप से आपके आकार का है। केवल अपने स्थानीय भंडारण के बेंचमार्क पर ध्यान केंद्रित न करें, विश्लेषण करें कि आपके कार्यभार की क्या आवश्यकता है और तदनुसार आकार।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. विंडोज़ पर ओडीबीसी अनुप्रयोगों को सुगरसीआरएम से कनेक्ट करें

  2. एक पेट केयर डेटा मॉडल

  3. एसक्यूएल में ट्रिगर क्या हैं और उन्हें कैसे कार्यान्वित करें?

  4. MapReduce प्रकार और स्वरूपों को समझना

  5. Azure सर्वर रहित का परिचय