Fiziksel ana makineye karşı bir Sanal Makinenin performans farkı nedir?


12

Çalıştığım yerde Debian Linux Dağıtımını kullanarak nispeten güçlü bilgisayarlar kullanıyoruz. Ancak, yüklememiz gereken bazı programlar için CentOS'a sahip olmak daha iyi olurdu ve bunlar bizim ana çalışma araçlarımız olacaktır. İşyerimizdeki tüm bilgisayarlar için İşletim Sistemini değiştirmek bir olasılıktır, ancak VirtualBox kullanmanın basitlik için daha iyi bir seçenek olup olmadığına karar vermeye çalışıyoruz.

Bunların hepsi aşağıdaki noktaya dayanıyor. Çalıştırmamız gereken programlar, bir simülasyon başlatıldığında kolayca bir saat veya daha fazla çalışabilen, işlemci yoğun görev yapan simülatörlerdir. Sanal Kutu kullanırken performansın düşmesinin işletim sistemi değişikliğimizi hak edecek kadar büyük olup olmadığına karar vermeliyiz.

Öyleyse sorum şu ki, herhangi biri bana sanal kutuda işlemci yoğun bir görevi çalıştırmanın yerel bilgisayarda çalıştırmaya karşı performansının ne kadar etkili olduğunu söyleyebilir mi?

Teşekkürler.

Yanıtlar:


13

Sayı-sıkma programları için (çok CPU bağlantılı), VM için neredeyse sıfır performansa ulaşılması gerekir. Talimatlar doğrudan host ve VM için aynı olan CPU üzerinde çalışır.

Ciddi derleme görevleri için bile, performans farkı neredeyse hiç fark edilemez. CentOS VM'leri Windows'ta VMware'de çalıştırıyoruz.

Ana bilgisayarda Linux çalıştırdığınızdan , VirtualBox yerine KVM'yi (Çekirdek Sanal Makinesi) de düşünebilirsiniz . Tüm modern CPU'larda bulunan Intel VT-x sanallaştırma uzantılarını kullanarak Linux'ta sanallaştırma hizmetleri sunan bir dizi çekirdek modüldür. QEMU, x86 kodunu doğrudan ana bilgisayar CPU'sunda çalıştırmak için KVM'yi hızlandırıcı olarak kullanır.

Sadece virt-managerdenemek için yükleyin .


Tamam. Ona bir şans vereceğim. Yanıt için teşekkürler.
aarelovich

Performans açısından akıllı olan KVM, VirtualBox ile karşılaştırılır (Windows 10'u Linux Sisteminde çalıştırmak diyelim)?
Royi

VirtualBox, CPU sanallaştırma uzantılarını (KVM gibi) kullanıyorsa ve iş yükü çoğunlukla CPU'ya bağlıysa, bunlar neredeyse aynı olmalıdır. Görevler G / Ç ağır ise, performans seçilen donanıma bağlı olarak değişecektir. KVM, taklit edilen cihazların (örn. E1000 NIC ve LSI SCSI disk denetleyicisi) büyük ölçüde üstesinden gelebilecek paravirtualized sürücülere (virtio) sahiptir. Genelde makul olarak yakın olmaları gerekir.
Jonathon Reinhart

5

Buna tek bir iyi cevap yok. Bir VM'yi nasıl kullandığınıza ve hangi programlara bağlı olduğuna çok bağlıdır.

Örneğin VMWare (tip 2 hiper yönetici) ve tamamen CPU'ya bağlı bir program kullanarak neredeyse tam CPU hızı elde edildi. Aynı hiper yönetici ya da çok fazla sistem çağrısı içeren bir program kullanırsam ciddi bir yavaşlama olur.

Ayrıca, bir tip 1 hiper yönetici (misafir yok) işletim sistemi kullandığınızda da değişiklikler olabilir. Ve bunlar arasında bile çok fazla çeşitlilik var. Örneğin, Xen ile 5 (geçen hafta sonlarından IIRC, FOSDEM Xen'de konuşuyor) modlarını destekliyor. HW'den sanallaştırmaya para kullanarak.

Özetlemek için: İstendiği gibi neredeyse hiç yavaşlamadan ciddi yavaşlamaya kadar değişebilir.


Şimdi VirtualBox'a odaklanırsam, bu tip 2 hiper yöneticidir. Tamamen CPU'ya bağlı programlar iyi olmalı.


Bu programların çoğu esasında bir dili C Koduna dönüştürür ve derler. Bir simülasyonu çalıştırdığımızda, bu derleme çalıştırılan şeydir. Accoridng, o zaman iyi olmalı?
aarelovich

Performansın iyi olacağından şüpheleniyorum. Sanal kutu deneyimim sınırlı (çoğunlukla VMware iş istasyonunu kullandım), ancak neden yavaş olması gerektiğine dair teknik bir neden göremiyorum.
Hennes

Performans açısından akıllı olan KVM, VirtualBox ile karşılaştırılır (Windows 10'u Linux Sisteminde çalıştırmak diyelim)?
Royi

4

Aslında, Docker, yaptığınız şey için daha iyi bir seçenek olabilir gibi gözüküyor. Docker, aynı çekirdeğin üstünden izole edilmiş yalıtılmış kum kutusu olan kaplar sağlar. Sistem içi çağrı / IO ek yükü sıfırdır, çünkü konteyner içi işlemleriniz ana bilgisayardakilerden farklı değildir.

Zaten Linux kullanıyorsanız, Docker tüm makinelerinizi yeniden yüklemenize gerek kalmadan bir CentOS ortamı sağlamak için harika bir yol olacaktır.

Ayrıca, Docker konteynerinin içindeki yapılar gibi işleri kolaylaştıran Scuba hizmet programımı da inceleyin . makeKoşmak yerine koşacaktın scuba make. Bu kadar!


Bunu denemek ve başlamak için yardıma ihtiyacınız varsa bana bildirin.
Jonathon Reinhart

Teşekkürler ama bu çok uzun zaman önceydi ve hamlenin yapılmasına karar verildi. Ancak, CentOS'ta çalışan sorunları olan bir programı çalıştırmak zorunda kalırken bunu dikkate alacağım.
aarelovich
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.