वर्चुअल मशीन में SQL सर्वर चलाने के लिए सबसे अच्छा अभ्यास क्या हैं?


21

वर्चुअल मशीन में SQL सर्वर चलाने के लिए सबसे अच्छा अभ्यास क्या हैं? मेरे ऑन-लाइन लेन-देन की गतिविधियाँ बहुत कम हैं, लेकिन कई वेब साइटों पर रिपोर्टिंग डेटा प्रदान करने के उद्देश्य से डेटा प्रोसेसिंग की उच्च मात्रा है।


2
डिस्क कहाँ संग्रहीत किए जा रहे हैं? एक स्थानीय 5400 RPM HDD पर? एक पर SAN फाइबर कनेक्शन और 15k धुरी डिस्क के साथ? इन दिनों सभी वीएम आईओ के बारे में हैं, सीपीयू लगभग कुछ भी नहीं है।
jcolebrand

नहीं, स्थानीय नहीं। लेकिन मुझे सैन का विवरण नहीं पता है।
जैरोल

2
मैं टिप्पणी नहीं जोड़ सकता क्योंकि मेरे पास अभी तक पर्याप्त प्रतिष्ठा नहीं है, लेकिन [माइक्रोसॉफ्ट के अनुसार] [1] 2008 R2 में फिक्स्ड और डायनेमिक वर्चुअल डिस्क के बीच थोड़ा प्रदर्शन अंतर है। [१]: blogs.msdn.com/b/tvoellm/archive/2009/08/05/…
टेरी बोचटन

@ टेरी, भविष्य में ऐसा उत्तर देने के लिए स्वतंत्र महसूस करेंगे और हम इसे आपके लिए परिवर्तित कर देंगे।
jcolebrand

जवाबों:


18

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

  • हमेशा निश्चित आकार का उपयोग किया जाता है, न कि गतिशील वर्चुअल डिस्क का, और सुनिश्चित करें कि अंतर्निहित ड्राइव / सरणियाँ पर्याप्त हैं। डायनेमिक vdisks निश्चित आकार वाले की तुलना में कम प्रदर्शन करने वाले होते हैं।
  • यदि VMs में डेटा महत्वपूर्ण नहीं है, तो अतिरिक्त प्रदर्शन के लिए VM समाधान क्षमता को कैश में लिखता है (प्रभावी रूप से अतिथि OS के बारे में जब चीजें डिस्क पर लिखी जाती हैं) को कैश करने की क्षमता को चालू करें। यह एक विकास और परीक्षण मशीन के लिए उपयोगी है जहां डेटा को आसानी से बदल दिया जाता है, या केवल मास्टर को स्थानीय प्रतिकृतियां पढ़ी जाती हैं जो किसी भी परेशानी का अनुभव होने पर फिर से बनाया जा सकता है, लेकिन यह अनुशंसा की जाती है कि ऐसे विकल्प उत्पादन और बैकअप सिस्टम के लिए बंद रहें। यदि मशीन अप्रत्याशित रूप से बंद हो जाती है, तो वे डेटा हानि (या बदतर, भ्रष्टाचार) की संभावना को बढ़ाते हैं।
  • सुनिश्चित करें कि प्रत्येक वीएम के पास पर्याप्त रैम है जो इस तरह से समर्पित है कि प्रत्येक डेटाबेस का सामान्य कामकाजी सेट अनावश्यक आईओ से बचने के लिए कमरे की उचित मात्रा के साथ स्मृति में फिट बैठता है। इसके अलावा, यह सुनिश्चित करें कि हाइपरविजर किसी भी समय VMs RAM को बाहर नहीं करेगा (उदाहरण के लिए अधिकांश VMWare उत्पाद ऐसा कर सकते हैं, जो आपको VM के एक बड़े सेट को चलाने की अनुमति देता है, अन्यथा आप एक ही हार्डवेयर पर कर सकते हैं, लेकिन प्रदर्शन में गिरावट बड़े पैमाने पर - इस व्यवहार को ट्यून या बंद करने का एक विकल्प है)।
  • यदि होस्ट RAID5 सरणियों का उपयोग करता है, तो RAID10 पर जाएं। यह उपलब्ध स्थान को कम कर देगा लेकिन लेखन प्रदर्शन की समस्याओं को हटा देगा जो कि RAID5 (या 6) के साथ स्पष्ट हो सकता है।
  • VM के लिए जो बहुत सारी IO गतिविधि को देखने की संभावना रखते हैं, उन्हें अपनी खुद की ड्राइव या सरणी देने पर विचार करें, या केवल उनके पास कम गतिविधि देखने वाले डेटा के साथ अपनी ड्राइव (s) / array (s) साझा करें।

बेशक अगर आपका पूरा DB (और बाकी सब VM चल रहा है) VM को आवंटित RAM में फिट बैठता है और यह बहुत कम लेखन गतिविधि देखता है, तो IO का प्रदर्शन किसी मुद्दे से बहुत कम हो सकता है।

संपादित करें: कुछ और बिंदु:

  • यदि वर्चुअल डिस्क का उपयोग करना सुनिश्चित करें कि प्रदर्शन के लिए सबसे अच्छा नियंत्रक प्रकार का उपयोग किया जाता है। कुछ वर्चुअलाइजेशन समाधान बेहतर अतिथि अनुकूलता के लिए कई आभासी नियंत्रक प्रकार प्रदान करते हैं और आपको उन डिज़ाइनों में प्रोटोकॉल सीमाओं के कारण दूसरों की तुलना में कुछ कम कुशल मिल सकते हैं जो वे अतिथि ओएस के ड्राइवरों में अनुकरण और सीमाएं हैं।
  • यदि आपका वर्चुअलाइज़ेशन समाधान वर्चुअल ड्राइव नियंत्रक के लिए विशिष्ट ड्राइवर प्रदान करता है, तो सुनिश्चित करें कि आपका अतिथि ओएस उनका उपयोग कर रहा है - ये मेमोरी-टू-मेमोरी प्रतियों और होस्ट की संख्या को कम करके बल्क आईओ को गति दे सकते हैं <-> हाइपरविजर <-> अतिथि संदर्भ कुछ संचालन में शामिल स्विच।
  • उपरोक्त दो बिंदु लागू होते हैं यदि आप नेटवर्क स्टोरेज का उपयोग कर रहे हैं जैसे कि साधारण SMB शेयर या iSCSI भी: सुनिश्चित करें कि आप प्रस्ताव पर सबसे कुशल वर्चुअल नेटवर्क नियंत्रक का उपयोग कर रहे हैं और यह कि आपका अतिथि OS इसके लिए अनुशंसित ड्राइवर का उपयोग कर रहा है, अन्यथा दोनों विलंबता और वर्चुअलाइजेशन लेयर द्वारा बैंडविड्थ जरूरत से ज्यादा सीमित हो सकती है।

1
खैर, हाँ और नहीं। एक SAN एक iSCSI सर्जक के माध्यम से VM में आरम्भ किया गया है, जो बहुत जल्दी होगा!
गयुस

1
@Gaius: अच्छी बात है। मैंने vNIC और ड्राइवरों के संबंध में एक नोट जोड़ा है, जो उन मामलों में अतिरिक्त अड़चनों का स्रोत होने की संभावना है।
डेविड स्पिललेट

9

यहां शुरू करने के लिए एक अच्छी जगह है: http://www.brentozar.com/sql/virtualization-best-practices/ और http://sqlskills.com/blogs/brent/category/Virtualization.aspx


1
~ क्या इसमें कोई भाग है जिसे आप लेखों से उजागर करना चाहते हैं?
jcolebrand

2
नहीं। चूंकि वर्चुअलाइजेशन एक जटिल विषय हो सकता है, इसलिए मैं यह सब पढ़ने की सलाह दूंगा। यह वास्तव में इतना नहीं है। यदि ओपी त्वरित उत्तर की तलाश में है, तो शायद यह सही उत्तर नहीं होगा।
एरिक हम्फ्रे - लॉटालहैप 19

मैं सामान्य तौर पर सर्वोत्तम प्रथाओं के बाद था। बस SQLServer 2000 Standard को नए VM में स्थानांतरित करने के बाद, मैं संग्रहीत प्रक्रियाओं को कॉल करने वाली वेब साइटों के साथ समस्याओं को हल करने की कोशिश कर रहा हूं जो अब समय से बाहर हैं अगर वे मेमोरी में कैश्ड नहीं हैं; भले ही भौतिक और वीएम को सौंपी गई मेमोरी समान हो, 4 जीबी।
जैरोल

1
@ जेरोल: सुनिश्चित करें कि वीएम को आवंटित रैम को पृष्ठांकित करने की अनुमति नहीं है (अन्यथा वीएम को 4 जीबी आवंटित करना भौतिक मशीन पर 4 जीबी होने के समान नहीं है) और यदि आपके द्वारा उपयोग किए जाने वाले वर्चुअलाइजेशन समाधान विभिन्न आभासी प्रकार प्रदान करता है यह सुनिश्चित करता है कि सबसे अच्छा एक उठाया गया है और सही ड्राइवर का उपयोग अतिथि ओएस द्वारा किया जाता है।
डेविड स्पिललेट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.