हाइपर- V होस्टेड VM के लिए "तार्किक प्रोसेसर की संख्या" बढ़ाना वीएम के प्रदर्शन को क्यों बढ़ाता है?


9

मेरी समझ से, वर्चुअल मशीन (मान Relative Weightलेना बराबर है) को प्रोसेसर के बराबर हिस्सा मिलता है।

जब वीएम को कुछ प्रोसेसिंग समय दिया जाता है, तो यह कोई फर्क नहीं पड़ता कि वीएम इसे उपयोग करने के लिए या कई कोर के लिए एक ही कोर देख रहा है, क्योंकि प्रोसेसिंग हाइपर- V होस्ट पर प्रोसेसर की एक सरणी से बाहर आता है, भले ही। हालाँकि, जब मैं Number of logical processorsहाइपर- V में 1 से 4 तक की सेटिंग किसी विशेष VM के लिए करता हूं, तो मुझे एक बहुत बड़ा प्रदर्शन बढ़ता है।

मेरे वर्तमान सेटअप के स्पेक्स लगभग हैं:

  • हाइपर-वी होस्ट में 32 जीबी रैम, 24 लॉजिकल प्रोसेसर (गलत शब्द?), कुछ टीबी स्पेस है।

  • VMs को 6 GB RAM, 1 या 4 कोर, कुछ सौ GB स्थान और 2008 R2 चल रहा है।

मैंने पिछले हाइपर-वी सेटअप पर एक समान चीज़ का अनुभव किया है।

जवाबों:


20

प्रत्येक हाइपरविजर में वर्चुअल मशीन जो मुझे पता है कि अतिरिक्त वर्चुअल सीपीयू का उपयोग करने में सक्षम हैं, जिस पर निष्पादन के अतिरिक्त समवर्ती धागे को शेड्यूल करना है।

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

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

और हम यहां अपनी शर्तों के बारे में बहुत स्पष्ट हैं। आप वीएमसी को वीपीयू या वर्चुअल सीपीयू असाइन करते हैं, न कि "कोर"। कोरेस (जिसके द्वारा मेरा मानना ​​है कि भौतिक प्रसंस्करण इकाइयाँ जो एक भौतिक सॉकेट को साझा करती हैं) समान vCPUs नहीं हैं। उनके बीच अमूर्तता की एक परत है। यदि एक वीएम के पास केवल 1 वीसीपीयू को सौंपा गया है, तो यह एक समय में चलाने के लिए केवल एक थ्रेड को शेड्यूल कर सकता है। यही कारण है कि आपका वीएम 2 -4 वर्चुअल सीपीयू के साथ तेजी से चलता है - क्योंकि यह अब समवर्ती चलाने के लिए एक से अधिक थ्रेड शेड्यूल करने में सक्षम है।

हालांकि, यहां निश्चित रूप से कम रिटर्न का कानून है, क्योंकि अत्यधिक संख्या में वर्चुअल सीपीयू सिंक्रोनाइजेशन जैसी चीजों में अधिक और उच्चतर ओवरहेड कॉस्ट खर्च करते हैं।

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


7
@ Flapjack00 नहीं ... जो मैंने अभी कहा उसके ठीक विपरीत है। और हम यहां अपनी शर्तों के बारे में बहुत स्पष्ट हैं। आप वीएमसी को वीपीयू या वर्चुअल सीपीयू असाइन करते हैं, न कि "कोर"। कोरेस (जिसके द्वारा मेरा मानना ​​है कि भौतिक प्रसंस्करण इकाइयाँ जो एक सॉकेट साझा करती हैं) vCPUs के बराबर नहीं हैं। उनके बीच अमूर्तता की एक परत है। यदि एक वीएम के पास केवल 1 वीसीपीयू को सौंपा गया है, तो यह एक समय में चलाने के लिए केवल एक थ्रेड को शेड्यूल कर सकता है।
रयान रिस

1
आह! तो, उस स्थिति में, 4 वीसीपीयू के साथ कॉन्फ़िगर किया गया एक वीएम एक बार में 4 थ्रेड्स शेड्यूल कर सकता है। मान लें कि मेरे मेजबान के पास पर्याप्त वीसीपीयू उपलब्ध हैं, उन 4 धागों को एक ही समय में संसाधित किया जा सकता है?
ब्लैकजैक00

1
@ Flapjack00 "मान लें कि मेरे मेजबान के पास पर्याप्त वीसीपीयू उपलब्ध हैं" - मेजबान के पास वीसीपीयू नहीं है, वीएम करता है। मेजबान के पास कोर (या, अधिक सही ढंग से, तार्किक प्रोसेसर - एक कोर में कई तार्किक प्रोसेसर हो सकते हैं, जैसे हाइपर-थ्रेडिंग के साथ) जो वीसीपीयू को सौंपा जाता है।
ब्लूराजा

2
@, यह VMware के लिए विशिष्ट मुद्दा है। यह हाइपर-वी को प्रभावित नहीं करता है।
जेक ओशिन्स

1
"X vCpu को Y cpu ताले की आवश्यकता है" जो VMware को ESX 3.5 में हटा दिया गया था, इसलिए यह अब किसी भी आधुनिक हाइपरवाइजर पर लागू नहीं होता है। कहा जा रहा है, आपको अपने VMs को अनावश्यक संसाधनों को निर्दिष्ट नहीं करने के बारे में सावधान रहना चाहिए, और vCpu विशेष रूप से महत्वपूर्ण हैं। उनमें से बहुत से और आप समग्र प्रदर्शन खो देंगे।
पौस्का

3

असाइन किए गए वर्चुअल CPU की मात्रा मायने रखती है। VM में चल रहे सॉफ़्टवेयर को इस बात की जानकारी नहीं है कि यह VM में है और यह कि VM जो प्रस्तुत करता है, उससे अधिक होस्ट सक्षम है। इसलिए यदि आप ऐसे सॉफ़्टवेयर चला रहे हैं, जो वीएम में कई सीपीयू कोर का लाभ उठा सकते हैं, जिसमें केवल एक ही कोर होता है, तो सॉफ्टवेयर केवल एक कोर को अपने कार्यों के लिए शेड्यूल करेगा, और वीएम भी केवल एक होस्ट कोर का उपयोग करेगा एक वक़्त। एक बार जब आप VM को अधिक कोर देते हैं, तो सॉफ़्टवेयर अधिक समानांतर कार्यों को शेड्यूल कर सकता है, जिसे होस्ट करने वाला CPU VM के लिए शेड्यूल करेगा।

वीएम को बहुत अधिक न देने के लिए सावधान रहें, ताकि विवाद का कारण न हो, यदि एक वीएम के पास मेजबान की तुलना में अधिक आभासी कोर हैं, तो वीएम खुद के खिलाफ प्रतिस्पर्धा करेगा, और vmware की तरह गिरोह अनुसूचित हाइपरवाइजर्स के मामले में, वीएम कभी भी कुछ भी निष्पादित करने में सक्षम नहीं होना चाहिए (समग्र रूप से विकल्प पाठ्यक्रम की प्रबंधन परत द्वारा अवरुद्ध है)।

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