वर्चुअल मशीन के अंदर डेटाबेस चलाने की कमियां क्या हैं? मैं उन्हें कैसे दूर करूं? [बन्द है]


66

वर्चुअल मशीन के अंदर कुछ भी चलाने से प्रदर्शन का स्तर कुछ हद तक प्रभावित होगा, लेकिन यह वास्तव में डेटाबेस प्रणाली के प्रदर्शन को कितना प्रभावित करता है?

मुझे कुछ दिलचस्प बेंचमार्क के साथ यह अकादमिक संदर्भ पत्र मिला , लेकिन यह केवल एक्सईएन और पोस्टग्रेक्यूएल का उपयोग करके एक सीमित परीक्षण था। निष्कर्ष यह था कि वीएम का उपयोग करना "प्रदर्शन में उच्च लागत पर नहीं आता है" (हालांकि आप सोच सकते हैं कि वास्तविक डेटा अन्यथा कहता है)।

वर्चुअल मशीन के भीतर डेटाबेस चलाने से जुड़ी तकनीकी, प्रशासनिक और अन्य कमियां क्या हैं?

कृपया ऐसे उत्तर पोस्ट करें जो वस्तुनिष्ठ तथ्यों द्वारा समर्थित हो सकते हैं, मुझे अटकलों या किसी अन्य अर्ध-धार्मिक तर्क में कोई दिलचस्पी नहीं है (geek का जुनून कई मायनों में अच्छा है, लेकिन यह यहाँ हमारी मदद नहीं करेगा)।

ऐसा कहे जाने के बाद,

  • वर्चुअल मशीन में डेटाबेस चलाते समय क्या समस्याएँ दिखाई देती हैं? (कृपया संदर्भ पोस्ट करें)
  • क्या वे मुद्दे महत्वपूर्ण हैं?
    • क्या वे केवल कुछ परिदृश्यों के तहत महत्वपूर्ण हैं?
  • वर्कअराउंड क्या हैं?

+1 मैं मुख्य रूप से SQL सर्वर और Windows 2008 R2 परिदृश्यों के बारे में प्रतिक्रिया सुनने में रुचि रखता हूं
goodguys_activate

4
@ शेन मद्देन - क्या आप कृपया बंद को थोड़ा समझा सकते हैं? मुझे उम्मीद है कि प्रेरणा एक गैर-विशिष्ट उत्तर (जो तब टिप्पणियों में पटरी से उतर गई थी) से प्रेरित थी , सवाल ही नहीं। प्रश्न के बारे में, पूर्व-बंद होने के अस्तित्व के लगभग एक दिन के भीतर 44 वोट और 12 पसंदीदा का तात्पर्य है कि यह उपयोगी उत्तर / जानकारी के साथ एक अच्छा सवाल था (विशेषकर सर्वरफॉल्ट प्रश्न ट्रैफ़िक के लिए विशिष्ट होने की तुलना में)। यह वही है जो विभिन्न एसई साइटों को लक्ष्य कर रहे हैं। क्या आप अधिक विशिष्ट प्रश्न को प्राथमिकता देना पसंद करेंगे, बनाम "कितना बुरा है?"।
रस

1
@ एरिक, शेन, वोमबल, माइकब, बेन - मैंने एक समुदाय संपादित किया, जो इस प्रश्न को अधिक रचनात्मक बना सकता है। इसे फिर से खोलने पर विचार करें, या नए / स्वच्छ प्रश्न पर एक समान प्रश्न पोस्ट करें।
goodguys_activate

जवाबों:


41

हालांकि कई डीबी विक्रेता ऐसा करने के लिए बहुत धीमी गति से थे, उनमें से लगभग सभी अब आधिकारिक रूप से एक वर्चुअलाइज्ड वातावरण में चल रहे अपने सॉफ़्टवेयर का समर्थन करते हैं।

हम ESXi के शीर्ष पर linux में कई Oracle 11g इंस्टेंस चलाते हैं, और निश्चित रूप से बहुत अच्छा प्रदर्शन प्राप्त करना संभव है। सभी हार्डवेयर स्केलिंग के साथ, आपको बस यह सुनिश्चित करने की आवश्यकता है कि वर्चुअलाइजेशन होस्ट के पास बहुत सारे संसाधन हैं (RAM, CPU), और यह कि आपकी डिस्क परत जो भी IO प्रदर्शन की आवश्यकता है, उसे वितरित करने के कार्य तक है।


7
+1 जैसा कि उल्लेख किया गया है, महत्वपूर्ण है कि संसाधन कार्य तक हो सकते हैं। डिस्क हमारे लिए बड़ी अड़चन रही है और केयरफुल प्लानिंग की जरूरत है।
डेव एम।

2
+1 आपको समय से पहले डेटाबेस के उपयोग पर अपना होमवर्क करना होगा । यदि आपका भौतिक बॉक्स 40% उपयोग के ऊपर अंकित हो रहा है तो vm'ing के लिए आपके फायदे इसे भंग करना शुरू कर देते हैं। कहा जा रहा है कि हमारे पास vm पर बिना किसी समस्या के चल रहे छोटे अनुप्रयोग-विशिष्ट पृथक sql के टन हैं। लेकिन हमारी बड़ी भारी उपयोग मशीनों ने लाभ की कमी के कारण हार्डवेयर को समर्पित किया है।
नैट

5
निश्चित रूप से डिस्क IO बड़ा अपराधी है, और क्या वर्चुअलाइज्ड वातावरण में परतदार होते हैं।
lynxman

1
@lynxman - सहमत। हम अपने टीयर 1 सैन डिस्क पर अपने सभी ओरेकल उदाहरणों को चलाते हैं, जो 15k एसएएस हैं। से मैं क्या बता सकते हैं, हम पाते हैं बहुत पास देशी प्रदर्शन के करीब है।
EEAA

10
"परीक्षण का एक औंस अनुमान के एक पाउंड के लायक है।"
क्रिस बी

21

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

ब्रेंट ओजर SQL Server वर्चुअलाइज करने में एक विशेष रूप से VMWare में एक मान्यता प्राप्त विशेषज्ञ है। मैं उनकी सामग्री के माध्यम से पढ़ने की अत्यधिक सलाह दूंगा।

http://www.brentozar.com/community/virtualization-best-practices/


11

नहीं है कर सकते हैं और फिर वहाँ है चाहिए । एक कार्वेट 150 मील प्रति घंटे जा सकता है, लेकिन क्या आपको सार्वजनिक राजमार्गों पर जाना चाहिए? आप बेवजह अपना नुकसान कर सकते हैं।

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

वर्चुअलाइजेशन की मांग करने वाले बीन काउंटरों को पहचानने में विफल रहने वाले कई लोग हैं जो डेटाबेस सर्वर, अतिथि ऑपरेटिंग सिस्टम के रूप में, अपनी समेकन परत प्रदान करते हैं। कोई कारण नहीं है कि आप एक से अधिक तार्किक डेटाबेस इंस्टेंस को एक भौतिक सर्वर पर स्थानांतरित नहीं कर सकते, यहां तक ​​कि आईपी पते को स्थानांतरित करने के लिए, अतिरिक्त होस्ट नाम सेट करना, आदि ..., सेवाओं के इस प्राकृतिक समन्वय के लिए अनुमति देने के लिए। और, इस मॉडल के साथ, आप न केवल उस लागत बचत को बनाए रखते हैं, जिसे प्रबंधन भौतिक मेजबानों की कम संख्या पर जोर दे रहा है, लेकिन आप भौतिक संसाधनों तक पहुंच को बिना किसी मध्यस्थ हाइपरवाइजर के प्रोत्साहन के बिना बनाए रखते हैं, जो कभी-कभी लाभकारी निर्णय ले सकते हैं अन्य।

वही जावा जैसे अन्य अतिथि ऑपरेटिंग सिस्टम के लिए सही है। वर्चुअलाइजेशन समाधान आम तौर पर व्यस्त वातावरण होते हैं और हाइपरविजर को बहुत सारे निर्णय लेने पड़ते हैं जो संसाधन पर "टोकन प्राप्त करता है"। कभी भी आप उस परत को समाप्त कर सकते हैं जिसे आप बेहतर बंद करने जा रहे हैं।

पहले प्राकृतिक अतिथि ऑपरेटिंग सिस्टम परत का उपयोग करके कई उदाहरणों को समेटना। ऑड्स आप अपने प्लेटफ़ॉर्म समेकन और प्रदर्शन लक्ष्य को आसानी से मार सकेंगे।


4
"अतिथि ऑपरेटिंग सिस्टम" की दिलचस्प परिभाषा। जबकि आपकी बात को शुद्ध, अनसुना प्रदर्शन के साथ लिया जाता है, सीपीयू में आपके डेटाबेस वास्तव में कितनी बार अड़चन डालते हैं? I / O की अधिक संभावना है, और उच्च प्रदर्शन अनुप्रयोगों के लिए आप पहले से ही I / O समय साझा कर रहे हैं SAN। मुझे उम्मीद है कि आप अपने वर्चुअलाइजेशन दर्शन पर पुनर्विचार करेंगे जब एक आवेदन के साथ एक सुरक्षा समस्या आपके सभी समेकित डेटाबेस के पासवर्ड हैश के साथ समझौता करती है, या जब आपके जेवीएम के भीतर चलने वाली एक प्रक्रिया उपलब्ध हीप स्थान के प्रत्येक बाइट का उपभोग करती है।
शेन झुंझलाना

5
स्पष्ट होने के लिए, मैं पूरी तरह से सहमत हूं कि एक बारीक ट्यून, बड़े पैमाने पर व्यस्त, उच्च प्रदर्शन डेटाबेस सर्वर का अपना भौतिक हार्डवेयर होना चाहिए। लेकिन वे आदर्श नहीं हैं, और वर्चुअलाइजेशन के अन्य लाभ प्रदर्शन हिट को पछाड़ने के लिए हैं, जो अधिकांश कार्यभार के साथ अप्रभेद्य है।
शेन झुंझलाना

3
मैं हमेशा आपकी बात से असहमत हूं कि पहले मौजूदा कंसॉलिडेशन लेयर्स पर जाएं। कभी-कभी यह समझ में आता है। लेकिन उदाहरण के लिए, एक ओएस पर कई डेटाबेस को मजबूत करने और एक हाइपरविजर के शीर्ष पर कई डेटाबेस / ओएस संयोजन को समेकित करने के बीच संसाधनों के पुनर्संतुलन में लागत ट्रेडऑफ़ पर देखें। पहला अधिक कुशल है। दूसरा पुनर्संतुलन के लिए बहुत आसान है। एक नए होस्ट के लिए माइग्रेट करना और ओएस / डेटाबेस एक नए ओएस के लिए डेटाबेस को माइग्रेट करने की तुलना में बहुत कम विघटनकारी है।
जेक ओशिन्स

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

1
वाह, सिर्फ जेम्स वाह। मेरे पास आपके उत्तर और बाद की टिप्पणियों में आपके द्वारा बनाए गए सभी बिंदुओं को रद्दी करने का समय नहीं है, लेकिन मुझे लगा कि मुझे इस उत्तर पर होने वाली किसी टिप्पणी के लिए यहां टिप्पणी करने की आवश्यकता है। जेम्स के विचार, ठीक हैं, उनके अपने हैं, और प्रतिबिंबित नहीं करते हैं कि वास्तव में क्या संभव है। यदि आप ओवरसाइज्ड हैं तो निश्चित रूप से आपका प्रदर्शन खराब है। इसलिए ओवरसाइज न करें। यह बहुत ही उच्च प्रदर्शन वाले वर्चुअलाइजेशन वातावरण के लिए पूरी तरह से संभव है। इसके खिलाफ एक कंबल की सिफारिश करना मूर्खतापूर्ण है क्योंकि यह "खराब प्रदर्शन करता है"।
EEAA 14

6

यहां महसूस करने के लिए दो चीजें हैं:

  • हार्डवेयर के प्रति DB प्रदर्शन की इकाई एक वर्चुअलाइज्ड db के लिए थोड़ी कम है। इसका मतलब है कि प्रदर्शन के समान स्तर को प्राप्त करने के लिए आपको थोड़ा और हार्डवेयर खरीदने की आवश्यकता है।
  • इसका मतलब यह नहीं है कि समान स्तर या प्रदर्शन का वांछित स्तर अप्राप्य है। लाभ में सुधार प्रबंधन और अन्य लाभों (आसान हा की तरह) अक्सर से आपको मिल तरीका से अधिक मामूली वृद्धि हुई हार्डवेयर लागत की भरपाई।

उस ने कहा, जहां मैं काम करता हूं हमारे एसक्यूएल सर्वर इंस्टॉलेशन केवल दो सर्वरों में से एक है, जिनका जल्द ही किसी भी समय वर्चुअल करने का कोई इरादा नहीं है (अन्य प्राथमिक डीसी है)।


4

SQL सर्वर चलाना एक VM ठीक है, बशर्ते कि आप अपने एप्लिकेशन को चलाने के लिए VM को पर्याप्त संसाधन प्रदान कर सकें। यदि भौतिक दुनिया में आपको 24 कोर और 256 गीगा रैम की आवश्यकता है तो आपको आभासी दुनिया में 24 वीसीपीयू और 256 गीगा रैम प्रदान करने की आवश्यकता है।

मैंने अभी पिछले महीनों में एक लेख लिखा था SQL Server पत्रिका जो VMware के vSphere के तहत SQL सर्वर चलाने के बारे में है।


2

मैं एक वर्चुअल वातावरण (Xen) में दो डेटाबेस, एक PostgreSQL और दूसरा MySQL चलाता हूं, जहां dom0s अत्यधिक उपलब्ध हैं। domU फाइल सिस्टम सभी iSCSI SAN LUN पर स्थित हैं, जो LVM2 लॉजिकल वॉल्यूम के साथ बना हुआ है। MySQL डेटाबेस पूरी तरह से Cacti के लिए है, और इसलिए यह बहुत अधिक उपयोग नहीं देखता है, और iSCSI LUN पर भी स्थित है।

PostgreSQL डेटाबेस हमारे मंचन पर्यावरण के लिए डेटाबेस है, और इसलिए MySQL db की तुलना में अधिक उपयोग देखता है। इस कारण से, डेटाबेस स्थानीय RAID10 सेट पर स्थित है, और DRBD को दूसरे क्लस्टर नोड में दोहराया गया है। हालाँकि, वास्तविक भार के संदर्भ में, यह मंचन डेटाबेस बहुत अधिक भार नहीं देखता है। जो, मेरी राय में, इसे वर्चुअलाइज करने के लिए एक अच्छा / महान उम्मीदवार बनाता है।

हमारे संगठन को होने वाले लाभों में से कुछ कम बिजली की खपत, सहेजे गए रैक स्थान और कम हार्डवेयर प्रशासनिक ओवरहेड थे।

हमारा मुख्य उत्पादन डेटाबेस, दूसरी ओर, मैं आभासी जाने की कल्पना नहीं कर सकता ...।


2

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

हाँ, वीएम कुछ ओवरहेड लागत को जोड़ता है और यदि आप एक एकल बॉक्स पर कई वीएम की मेजबानी करने जा रहे हैं तो आपको एक अच्छा बीफ़ सर्वर की आवश्यकता होगी। बाहर देखने के लिए एक आम संसाधन समस्या अतिरिक्त संसाधनों को जोड़ने और अतिरिक्त संसाधनों को पतला करने के लिए है। कुछ वृद्धि के लिए योजना बनाना आम बात है, लेकिन अगर आपने अपने सर्वर को 2 या 3 VMs को होस्ट करने के लिए खरीदा है और अब इसके 10 VMs चल रहे हैं, तो संभवत: एक प्रदर्शन हिट होगा।

मैं झूठ बोल रहा होगा अगर मैंने कहा कि मैंने कभी भी प्रदर्शन मुद्दों को एक वीएम पर SQL सर्वर चलाते हुए नहीं देखा है। लेकिन, मैंने सीखा है कि यदि आप खराब प्रदर्शन देख रहे हैं, तो शायद पर्यावरण में कुछ गड़बड़ है।

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