QEMU'nun performansı (hala) VirtualBox'ları geride bırakıyor mu ve donanım desteği + kvm çekirdek modülü olmadan onu geliştirmenin bir yolu var mı?


9

QEMU'nun VirtualBox'tan (donanım yardımı olmadan) daha yavaş olduğunu iddia eden birkaç makale fark ettim, ancak bazıları yaşında ve en yenisi geçen yıldan beri görünüyordu.

  • QEMU'nun VirtualBox'tan daha yavaş olduğu doğru mu?
  • Öyleyse neden?
  • Performans açığını kapatmak için herhangi bir püf noktası var mı?

Ana bilgisayar sistemlerimin bazılarında donanım sanallaştırma desteği yok, bu yüzden özellikle çekirdek modülü olmadan çalışan performans ipuçlarıyla ilgileniyorum.

Yanıtlar:


10

Bir x86 ana bilgisayarında x86 sanallaştırmasından bahsediyorsanız, kqemu'nun (qemu için eski hızlandırma çekirdek modülü) kullanımdan kaldırıldığını unutmayın. Çekirdek Sanal Makine (KVM) "ileriye dönük" ama sadece Linux ana makinelerinde çalışıyor. Misafir, x86 mimarisi olduğu sürece istediğiniz işletim sistemi olabilir.

Çapraz mimari, qemu hala çok yavaş; sadece bugün konuk .... Debian MIPS64 ile son qemu çalışıyordu bir terminal kullanılabilir ama korkunç Xorg yavaş oldu. bildiklerime göre, çapraz mimariye giderken genişletilmiş sayfa tabloları veya VT-x gibi işlemci hızlandırma talimatlarını kullanamazsınız. Hepsi yazılımda öykünüyor.

Bu nedenle x86'dan x86'ya sanallaştırma için "raw" qemu yavaştır, ancak KVM ( qemu kullanan ) hızlıdır. Oldukça hızlı. O kadar hızlı ki Red Hat'in RHEL için önerilen sanallaştırma çözümü.

VirtualBox, qemu / kvm'nin donanım hızlandırmalı 2d / 3d grafik performansı açısından sunabileceği her şeyi uçuruyor, çünkü kvm sunucu sanallaştırmasına odaklanıyor ve sanal kutu masaüstü sanallaştırmaya odaklanıyor. Ama kesinlikle bir sunucu ile ilgili kvm kontrol etmenizi tavsiye ederim.

Düzenleme: Herhangi bir donanım hızlandırması olmayan ana makineleriniz için, hangi çözümü kullandığınızdan bağımsız olarak oldukça büyük bir yükten muzdarip olacaksınız. Yazılımdaki donanım öğelerini taklit etmek zor ve pahalıdır.


2
ls $(which kvm)simgesine bir sembolik bağlantı gösterir qemu-system-x86_64. QEMU kullanarak KVM ile tam olarak neden bahsettiğinizi tahmin ediyorum.
Catskul

Evet, ancak KVM, adından da anlaşılacağı gibi, çekirdek tabanlı bir sanal makine, yani hipervizör bağırsakları 'kvm' çekirdek modülünde. İsterseniz eski kqemu'ya benzediğini düşünebilirsiniz, ancak mimari olarak çok farklı. qemu, kvm çalışırken gerçek bir hipervizörden çok bir ön uçtur.
allquixotic

Oh, eklemeyi unuttum: qemu'nun (ve diğer herhangi bir sanallaştırma sisteminin) "çekirdek modülü" olmadan bu kadar yavaş olmasının sebebi konuk performanslarının yazılımda taklit edilmesi çok zordur. Güvenilmez ya da karmaşık olarak zor değil; sadece sloooooooooooooow. Bu nedenle Intel, on yılın daha iyi bir kısmını, VT-x ve EPT yolunda en yavaş sanallaştırma parçaları için bize donanım hızlandırmalı talimatlar vererek harcadı. Tek düzeltme, bu komut kümelerini destekleyen donanımı kullanmaktır.
allquixotic

Virtualbox'ı donanım hızlandırması olmadan bile daha hızlı yapan bir şey var mı?
Catskul

Hayır. Donanım ivmesi olmadan, performans oldukça eşit olmalıdır. VirtualBox, yazılımda biraz daha hızlı çalışmasını sağlayan gelişmiş x86 optimizasyonlarına sahip olabilir. Ancak bu, temel olarak önbellek yöresine, optimize edilmiş iç döngülere, elle kodlanmış birleştiriciye, ana bilgisayar tarafındaki disk G / Ç önbelleğine veya diğer hilelere inen bir uygulama / tasarım detayıdır.
Vbox'ın qemu'nun

1

Sanallaştırma özellikli bir CPU'ya (Intel VT-x, AMD SVM) sahip bir ana bilgisayar varsa, Qemu'yu bir çekirdekte (KVM'li Linux) çalıştırarak oldukça hızlıdır.

Qemu'nun 2D (youtube, elektronik tablo, oyunlar) ve 3D öykünme ile yavaş olmasının teknik nedenleri benim için belirsiz. Ancak, "video sürücülerinin" yeterince iyi olmadığını tahmin edebilirim - donanımdaki grafik donanımı en uygun şekilde kullanılmaz.

Parlak tarafta, yeni bir gelişme QEMU için SPICE çerçevesini tanıttı. Aslında birkaç yaşında ve oldukça olgun görünüyor. QXL video sürücüsü ile çalışmanın video performansı avantajları benim deneyimimde (2D web geliştirme) çok büyük. Virtualbox ile ne kadar iyi olduğunu bilmiyorum, ama kesinlikle bir gelişme. Ben SPICE Qemu Windows çalışan herkes için bir zorunluluk olduğunu düşünüyorum.

Bu sadece benim düşüncem ve konukta herhangi bir 3D veya video oynatmayı hiç denemedim bile.


1
"Grafik odaklı öykünme" ile 3D hızlandırmayı kastediyorsanız, bunun nedeni GPU'ların CPU'lar gibi sanallaştırılamamasıdır. Yazılım öykünmesi inanılmaz derecede yavaştır, bu yüzden günümüzde iki çözüm vardır: 1. API geçidi (yani konuktaki DirectX aramaları ana bilgisayarda DirectX aramaları olarak yürütülür) 2. VGA geçidi (gerçek anlaşma: tüm grafik kartı kullanılabilir hale getirilir) konuk). QEMU # 2'yi destekler.
Marcus

@Marcus Passthrough gitmek için bir yoldur.
Ярослав Рахматуллин
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.