क्या QEMU का प्रदर्शन (अभी भी) VirtualBox का अंतराल है और क्या हार्डवेयर सपोर्ट + kvm कर्नेल मॉड्यूल के बिना इसे सुधारने का कोई तरीका है?


9

मैंने कई लेखों पर ध्यान दिया है जिन्होंने दावा किया है कि QEMU वर्चुअलबॉक्स (हार्डवेयर सहायता के बिना) से धीमा है, लेकिन कई साल पुराने हैं, और सबसे नया पिछले साल से लग रहा था।

  • क्या यह सच है कि QEMU वर्चुअलबॉक्स की तुलना में धीमा है?
  • यदि हां तो क्यों?
  • क्या प्रदर्शन अंतर को बंद करने के लिए कोई चाल है?

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

जवाबों:


10

यदि आप एक x86 होस्ट पर x86 वर्चुअलाइजेशन के बारे में बात कर रहे हैं, तो सलाह दी जाए कि kqemu (qemu के लिए पुराना त्वरण कर्नेल मॉड्यूल) को हटा दिया जाए। कर्नेल वर्चुअल मशीन (KVM) "आगे का रास्ता" है, लेकिन यह केवल लिनक्स होस्ट पर काम करता है। अतिथि वह हो सकता है जो भी ओएस आप चाहते हैं जब तक यह x86 आर्किटेक्चर है।

क्रॉस-आर्किटेक्चर, क्यूमू अभी भी वास्तव में धीमा है; आज ही मैं अतिथि में डेबियन MIPS64 के साथ नवीनतम qemu की कोशिश कर रहा था .... यह एक टर्मिनल से प्रयोग करने योग्य था लेकिन Xorg में बहुत धीमी गति से। जब आप क्रॉस-आर्किटेक्चर में जा रहे हों, तो मेरे ज्ञान के सर्वश्रेष्ठ के लिए, आप विस्तारित पेज टेबल या वीटी-एक्स जैसे प्रोसेसर त्वरण निर्देशों का उपयोग नहीं कर सकते। यह सब सॉफ्टवेयर में अनुकरणीय है।

तो x86 से x86 वर्चुअलाइजेशन के लिए, "कच्चा" qemu धीमा है, लेकिन KVM (जो qemu का उपयोग करता है ) तेज है। जल्दी। इतनी तेजी से कि यह आरएचईएल के लिए रेड हैट के अनुशंसित वर्चुअलाइजेशन समाधान है।

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

संपादित करें: आपके मेजबानों के लिए जिसमें कोई हार्डवेयर त्वरण नहीं है, आप एक बहुत बड़े ओवरहेड से पीड़ित होने जा रहे हैं, भले ही आप किस पुण्य समाधान का उपयोग करें। सॉफ्टवेयर में हार्डवेयर चीजों का अनुकरण करना कठिन और महंगा है।


2
ls $(which kvm)को एक सहिष्णुता दिखाता है qemu-system-x86_64। मैं अनुमान लगा रहा हूँ कि आप केवीएम के साथ क्यूईएमयू का उपयोग कर रहे हैं।
Catskul

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

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

क्या ऐसा कुछ है जो बिना हार्डवेयर त्वरण के भी virtualbox को तेज़ बनाता है?
Catskul

नहीं। हार्डवेयर त्वरण के बिना, प्रदर्शन काफी समान होना चाहिए। वर्चुअलबॉक्स में उन्नत x86 अनुकूलन हो सकते हैं, जो इसे सॉफ्टवेयर में थोड़ी तेजी से चलाते हैं, जो उचित होगा क्योंकि वर्चुअलबॉक्स केवल x86 को पहले स्थान पर सपोर्ट करता है, जबकि क्यूमू में बहुत अधिक व्यापक क्षेत्र (नॉन- x86 आर्किटेक्चर) है। लेकिन यह एक कार्यान्वयन / डिज़ाइन विवरण है जो मूल रूप से स्थानीय इलाके को कैश करने के लिए आएगा, इनर लूप्स, हैंड-कोडेड असेंबलर, होस्ट-साइड डिस्क I / O कैशिंग या अन्य चालें। निश्चित नहीं है कि ये बातें किस हद तक की गई हैं कि क्यूमू नहीं करता है लेकिन वे बहुत प्रासंगिक नहीं हैं ...
Allquixotic

1

वर्चुअलाइजेशन-सक्षम सीपीयू (इंटेल वीटी-एक्स, एएमडी एसवीएम) के साथ एक मेजबान को मानते हुए, क्यूमू को कर्नेल (केवीएम के साथ लिनक्स) पर चलाना, यह काफी तेज है।

क्यूमू के 2 डी (यूट्यूब, स्प्रेडशीट, गेम्स) और 3 डी इम्यूलेशन के साथ तकनीकी कारण मेरे लिए अस्पष्ट हैं। हालांकि, मैं यह अनुमान लगा सकता हूं कि "वीडियो ड्राइवर" बस बहुत अच्छे नहीं हैं - हार्डवेयर में ग्राफिक्स हार्डवेयर का उपयोग इष्टतम तरीके से नहीं किया जाता है।

उज्जवल पक्ष में, हाल ही में एक विकास ने चीमू को SPICE ढांचे की शुरुआत की। वास्तव में यह कुछ साल पुराना है और उचित रूप से परिपक्व लगता है। QXL वीडियो ड्राइवर के साथ चलने का वीडियो-प्रदर्शन लाभ मेरे अनुभव (2D वेब-विकास) में बहुत बड़ा है। मुझे नहीं पता कि यह वर्चुअलबॉक्स की तुलना में कितना अच्छा है, लेकिन यह निश्चित रूप से एक सुधार है। मुझे लगता है कि SPICE Qemu में विंडोज चलाने वाले किसी व्यक्ति के लिए होना चाहिए।

यह पूरी तरह से मेरी राय है और यह ध्यान दिया जाना चाहिए कि मैंने कभी भी अतिथि में कोई 3 डी या वीडियो प्लेबैक चलाने की कोशिश नहीं की है।


1
यदि "ग्राफिक्स-ओरिएंटेड एमुलेशन" द्वारा आप 3D त्वरण का संदर्भ देते हैं, तो यह है क्योंकि GPUs को CPU की तरह वर्चुअलाइज नहीं किया जा सकता है। सॉफ्टवेयर एमुलेशन असंभव रूप से धीमा है, इसलिए आजकल दो समाधान हैं। अतिथि को)। QEMU # 2 का समर्थन करता है।
मार्कस

@ मर्कस पस्सथ्रॉज जाने का रास्ता है।
урослав Рахматуллин
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.