2 सीपीयू के साथ एक वीएम वास्तव में 4 सीपीयू के साथ एक से अधिक तेज है?


67

हमारे आईटी ने 4 सीपीएम के बजाय आवंटित 2 सीपीयू के साथ एक वीएम बनाया। उनका कारण यह है कि वीएम 4 के बजाय 2 सीपीयू के साथ बेहतर प्रदर्शन करता है (उनके अनुसार)। तर्क यह है कि वीएम हाइपरवाइजर (इस मामले में VMWare) सभी सीपीयू में से किसी को भी उलझाने से पहले उपलब्ध होने का इंतजार करता है। इस प्रकार, 2 सीपीयू के बजाय 4 की प्रतीक्षा करने में अधिक समय लगता है।

क्या यह कथन समझ में आता है?

जवाबों:


62

यह सच हुआ करता था, लेकिन अब विशेष रूप से सच नहीं है।

वे जो उल्लेख कर रहे हैं वह सख्त सह-निर्धारण है

सबसे महत्वपूर्ण बात यह है कि कड़े सह-समय-निर्धारण एल्गोरिथ्म में, एक लैगिंग वीसीपीयू के अस्तित्व के कारण पूरे वर्चुअल मशीन को सह-बंद कर दिया जाता है। आराम सह-शेड्यूलिंग एल्गोरिथ्म में, एक अग्रणी vCPU यह निर्णय लेता है कि क्या यह सबसे धीमी गति से चलने वाले vCPU के विरुद्ध तिरछा के आधार पर स्वयं को सह-बंद करना चाहिए या नहीं

अब, यदि मेजबान के पास केवल 4 धागे हैं, तो आप उन सभी को आवंटित करने के लिए मूर्खतापूर्ण होंगे। यदि इसमें प्रति प्रोसेसर दो प्रोसेसर और 4 थ्रेड्स हैं, तो हो सकता है कि आप किसी एकल प्रोसेसर की सभी सामग्री को आवंटित नहीं करना चाहें, क्योंकि आपके हाइपरवाइजर को मेमोरी एक्सेस को तेज करने के लिए उसी NUMA नोड पर vCPUs रखने की कोशिश करनी चाहिए, और आप कर रहे हैं एक एकल वीएम को एक पूरे सॉकेट को आवंटित करके इस काम को और अधिक कठिन बना देना (ऊपर पीडीएफ के पेज 12 देखें)।

इसलिए ऐसे परिदृश्य हैं जहां कम वीसीपीयू अधिक से बेहतर प्रदर्शन कर सकते हैं, लेकिन यह 100% सच नहीं है।

सभी ने कहा और किया, मैं शायद ही कभी प्रति अतिथि 3 से अधिक वीसीपीयू आवंटित करता हूं। हर कोई डिफ़ॉल्ट रूप से 2 प्राप्त करता है, 3 अगर यह एक भारी काम का बोझ है, और SQL सर्वर या वास्तव में भारी बैच प्रसंस्करण VMs, या बहुत सारे उपयोगकर्ताओं के साथ एक टर्मिनल सर्वर जैसी चीजों के लिए 4।


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

4
@ Luaan बॉक्स पर SQL सर्वर है, इसलिए मुझे लगता है कि उन्हें वहां कुछ अच्छे सॉफ्टवेयर वाले मिले हैं।
एंग्रीहैकर

1
@AngryHacker हाँ SQL सर्वर सभी 4 कोर का उपयोग बहुत कुशलता से यह मानकर कर सकता है कि आपके पास उपयुक्त MAXDOPसेटिंग्स हैं। हालाँकि, कार्यभार के आधार पर, एक अत्यधिक टैक्स वाला SQL सर्वर अक्सर खराब डेटाबेस डिज़ाइन का संकेत होता है - खराब इंडेक्स, कोई क्लस्टर इंडेक्स, बहुत अधिक इंडेक्स, कोई ऑप्टिमाइज़ेशन, आदि (हमेशा नहीं, लेकिन अक्सर)।
मार्क हेंडरसन

1
@ लुआॅन अभी भी समानता है ... अगर वे एक दूसरे से बात करने की जरूरत है तो बस उच्चतर विलंबता के साथ। :)
पुनर्वित्त

@MarkHenderson इसकी बहुत अच्छी तरह से अनुकूलित, लेकिन कुछ वर्कलोड बहुत ही बड़े हैं जिन्हें आसानी से 2 सीपीयू प्लस आसानी से एक ही समय में अन्य प्रश्नों का एक टन द्वारा नियंत्रित किया जा सकता है।
एंग्रीहैकर

15

यह काफी हद तक अंतर्निहित हाइपरविजर और इसे चलाने वाले व्यवस्थापक पर निर्भर करता है, मुझे समझाएं:

  1. यह मनमाने तरीके से आपको सिर्फ 4 सीपीयू देने के लिए बुरा है क्योंकि आपने इसे अनुरोध किया था। सामान्यतया, आपको लगता है कि आपको 4 की आवश्यकता है; लेकिन संसाधन निगरानी का कहना है कि आपको केवल 1 की आवश्यकता है।
  2. उदाहरण के लिए VMware ESXi को सभी pCPU को लॉक करने की आवश्यकता होती है जब vCPU CPU संसाधनों के लिए अनुरोध करता है ; इसलिए इस हाइपरवाइजर के लिए यह प्रदर्शन के लिए बुरा है। KVM लॉकिंग नहीं करता है जैसे ESXi करता है; यह अंतर्निहित कर्नेल शेड्यूलर का उपयोग करता है, लेकिन फिर भी लंबे समय में सीपीयू विवाद पैदा कर सकता है।
  3. यदि आप 4 सीपीयू के साथ शुरू से सिस्टम का निर्माण कर रहे हैं, तो आप वास्तव में स्केलिंग नहीं कर रहे हैं, लेकिन अप (जो विशेष रूप से वीएम पर बुरा अभ्यास है)। आप इस बात की जांच करना चाहते हैं कि आप जो कुछ भी काम कर रहे हैं, उसे किस तरह से आर्किटेक्चर कर रहे हैं ताकि इसे आज के आधुनिक क्लाउड इन्फ्रास्ट्रक्चर के पैमाने पर बनाया जा सके।

आप इससे क्या सीख सकते हैं? हमेशा न्यूनतम संसाधनों के साथ वीएम बनाएं और आवश्यकतानुसार बढ़ें। हमेशा ऊपर के बजाय स्केल करें और आप कहीं भी अपना ऐप चला पाएंगे।

हाइपरविजर के साथ अनुभव किए जा सकने वाले लॉकिंग के कारण, यह वास्तव में सच है कि 2 सीपीयू 4 सीपीयू से अधिक तेज हो सकता है।


4

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

मैंने अपने वीएम की संख्या पर वीसीपीयू को कम किया है और बहुमत पर थ्रूपुट में सुधार देखा है। एक मुट्ठी भर खराब हो गई और वीसीपीयू काउंट पर टकरा जाना चाहिए।

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