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


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

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


65
2018-04-30 05:43


मूल




जवाब:


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

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

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

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

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

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


62
2018-04-30 06:05



सिर्फ एक तरफ - वर्चुअलाइजेशन बाधाओं के अलावा, समानांतरता का शोषण करने वाले सॉफ़्टवेयर को लिखना आम तौर पर मुश्किल होता है। यदि आपके सॉफ़्टवेयर लोग पर्याप्त अच्छे नहीं हैं, तो वास्तव में बेहतर हो सकता है कि चार वर्चुअल होस्ट सॉफ़्टवेयर के एक उदाहरण को चलाने के लिए एक मेजबान प्रत्येक निष्पादन के चार थ्रेड चला रहे हों। - Luaan
@ लुआयन बॉक्स में एसक्यूएल सर्वर है, इसलिए मुझे लगता है कि उन्हें वहां कुछ अच्छे सॉफ्टवेयर लोग मिल गए हैं। - AngryHacker
@AngryHacker हाँ SQL सर्वर सभी 4 कोर का उपयोग कर बहुत कुशलतापूर्वक मानते हैं कि आपके पास उचित है MAXDOP सेटिंग्स। हालांकि वर्कलोड के आधार पर, अत्यधिक कर वाले SQL सर्वर अक्सर खराब डेटाबेस डिज़ाइन का संकेत होता है - खराब इंडेक्स, कोई क्लस्टर इंडेक्स, बहुत अधिक अनुक्रमणिका, कोई ऑप्टिमाइज़ेशन आदि नहीं (हमेशा नहीं, लेकिन अक्सर)। - Mark Henderson♦
@ लुआयन यह अभी भी समांतरता है ... अगर उन्हें एक-दूसरे से बात करने की ज़रूरत है तो बहुत अधिक विलंबता के साथ। :) - reirab
@MarkHenderson इसकी सुंदर अच्छी तरह अनुकूलित है, लेकिन कुछ वर्कलोड्स एक ही समय में 2 सीपीयू और अन्य प्रश्नों के टन आसानी से संभालने के लिए बहुत बड़े हैं। - AngryHacker


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

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

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

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


14
2018-04-30 19:56





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

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


3
2018-04-30 19:41