2013-06-14 6 views
63

Windows 7'de 64 bit bir VM (Ubuntu 32 bit) başlatmaya çalışıyor. Vagrantfile'ımda modify vm komutunu ekledikten sonra VM'imi iki çekirdek gösterme konusunda sorun yaşıyorum. Benim Vagrant versiyonum 1.2.2. Bu Vagrantfile ile Sanal CPU ile Vagrant'ta VM'leri iki CPU'yla nasıl oluşturabilirim?

# -*- mode: ruby -*- 
# vi: set ft=ruby : 

Vagrant.configure("2") do |config| 
    config.vm.box = "precise32" 
    config.vm.box_url = "http://files.vagrantup.com/precise32.box" 

    config.vm.provider :virtualbox do |vb| 
    vb.customize ["modifyvm", :id, "--memory", "2048"] 
    vb.customize ["modifyvm", :id, "--cpus", "2"] 
    end 
end 

Ben vagrant up komutunu çalıştırın. Sonra verir lscpu ardından vagrant ssh sorunu:

Architecture:   i686 
CPU op-mode(s):  32-bit, 64-bit 
Byte Order:   Little Endian 
CPU(s):    1 
On-line CPU(s) list: 0 
Thread(s) per core: 1 
Core(s) per socket: 1 
Socket(s):    1 
Vendor ID:    GenuineIntel 
CPU family:   6 
Model:     58 
Stepping:    9 
CPU MHz:    2565.513 
BogoMIPS:    5131.02 
L1d cache:    32K 
L1d cache:    32K 
L2d cache:    6144K 

Bence CPU (ler) yani benim VM sadece şu anda bir CPU, 2 göstermelidir. lscpu'u çalıştırdığımda 2 CPU'yu nasıl gösterebilirim?

cevap

76

Vagrant dosyanızın içinde bulunan config.vm.provider bloğuna vb.customize ["modifyvm", :id, "--ioapic", "on"] kodunu ekleyin. VirtualBox documentation baktığımızda

Sözü edilen:

"Not/Ç APIC 64 bit konuk işletim sistemleri, özellikle Windows Vista için gerekli olan I etkinleştirilmesi, aynı zamanda gereklidir sen istiyorsanız sanal bir makinede birden fazla sanal CPU kullanın. "

+0

Bununla ilgili bazı problemlerim var. Ioapic'i çalıştırmayı denediğimde VM'm bana bir hata mesajı gösterir ... – Robert

+0

Yukarıdakileri bir CentOS 6.5' kutusunda denedim, ancak lscpu hala 1 CPU gösterdi. Ardından, aşağıdakileri başarılı bir şekilde denedim: 'vb.customize [" modifyvm ",: id," --cpuexecutioncap "," 50 "]' –

+2

@ Rob3: Bu hata mesajını okuduğunuzla başlayın. Hata mesajı "kırık" demiyor. Anlamanıza yardımcı olmak için tasarlandı, neyin var? Bu yüzden en önemli hata mesajı okumaktır. Ayrıca yardım istediğinde ve hata mesajını göndermediğinde, hiç kimse yardım etmeye çalışamaz. –

18

sonra en yaygın sorunu Oracle Virtualbox kullanarak serseri çalıştırıyorsanız 32bit ve bir cpu sizi sınırlayacak Windows 7, 8 veya 10 Hyper-V ile olduğunu.

"Windows Özellikleri" ni çalıştırın veya arayın ve "Windows Özelliklerini Açın veya Kapatın" ı seçin.

Onay kutularında, Hyper-V'nin kapalı olduğundan emin olun; Microsoft Hyper-V'nin Sanal Makine için VT-x özelliğini etkinleştiremediğinizden emin olun.

Ardından, birlikte Vagrantfile çizme derece kullanıcı dostu yapabilirsiniz: Çalışmakta olan iki çekirdeğe sahip istiyorum ve sadece biraz

bellek Gig 2 üzerinde ps varsayarsak

config.vm.provider "virtualbox" do |vb| 
    vb.memory = "2404" 
    vb.cpus = "2" 
    end 

- yok bağlantı noktanızı eklemeyi unutmayın. PhpStorm (Xdebug mysql, ve web) için kullandığım: kullandığınız hangi sağlayıcı bahsetmedim görünüyor

config.vm.network "forwarded_port", guest: 80, host: 8080 
    config.vm.network "forwarded_port", guest: 3306, host: 3306 
    config.vm.network "forwarded_port", guest: 9000, host: 9000 
+0

makalesine bir yorum ekledim Dinamik olarak mevcut cpus ve ana makinenin belleğini sorgulamanın ve bir koşula dayalı olarak tahsis etmenin herhangi bir yolu, yani host_cpus = 16 ise v.cpus = 8? İki farklı sistemde cpus ve ram'ın yarısını ayırmak istedim, diğeri 8 cpus & 8gb ram, diğer 16 cpus ve 16GB ram. – radtek

+1

@radtek: hepsi yakut, bu yüzden en azından CPU sayımını tespit etmek için bir kod dizisine girebilirsiniz (örn. Http://stackoverflow.com/questions/891537/detect-number-of-cpus-installed # 6420817) ve yarıya. –

+0

Teşekkürler, kontrol etmek için daha doğal bir yol olacağını düşündüm. – radtek

4

.

config.vm.provider "virtualbox" do |v| 
    v.memory = 1024 
    v.cpus = 2 
end 

Kontrol dışarı vagrant documentation kullandığınız belirli sağlayıcı: Vagrant 1.7 (örneğin VirtualBox, HyperV gibi) birçok VM sağlayıcıları itibariyle sizin Vagrantfile aşağıdaki yapılandırmayı destekler.

İlgili konular