it-swarm.com.de

Wie kann ich eine VM in Vagrant mit VirtualBox mit zwei CPUs erstellen?

Unter Windows 7 64-Bit, das versucht, ein VM (Ubuntu 32-Bit) zu starten. Ich habe Probleme, mein VM) zu bekommen, um zwei Kerne anzuzeigen, obwohl das hinzugefügt wurde modify vm Befehl in meinem Vagrantfile. Meine Vagrant-Version ist 1.2.2.

# -*- 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

Mit dieser Vagrantfile stelle ich die vagrant up Befehl. Dann stelle ich vagrant ssh gefolgt von lscpu, was ergibt:

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

Ich denke, CPU (s) sollten 2 anzeigen, also hat meine VM im Moment nur eine CPU. Wie kann ich 2 CPUs anzeigen lassen, wenn ich lscpu ausführe?

68
nikhil

Hinzufügen vb.customize ["modifyvm", :id, "--ioapic", "on"] zum config.vm.provider Blockiere in deinem Vagrantfile.

Ein Blick auf die VirtualBox Dokumentation erwähnt:

"Hinweis Die Aktivierung des E/A-APIC ist für 64-Bit-Gastbetriebssysteme erforderlich, insbesondere für Windows Vista. Sie ist auch erforderlich, wenn Sie mehr als eine virtuelle CPU in einer virtuellen Maschine verwenden möchten."

78
nikhil

Wenn Sie Oracle Virtualbox verwenden, tritt das häufigste Problem bei Hyper-V unter Windows 7, 8 oder 10 auf. Dadurch sind Sie auf 32-Bit und eine CPU beschränkt.

Führen Sie "Windows-Funktionen" aus oder suchen Sie nach "Windows-Funktionen aktivieren oder deaktivieren".

Stellen Sie in den Kontrollkästchen sicher, dass Hyper-V deaktiviert ist. Sie können VT-x für Virtualbox nicht aktivieren, wenn Microsoft Hyper-V es blockiert.

Dann können Sie Ihren Vagrantfile-Boot sehr benutzerfreundlich gestalten mit:

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

Angenommen, Sie möchten zwei Kerne und etwas mehr als 2 Gig Speicher haben

ps - vergessen Sie nicht, Ihre Portweiterleitung hinzuzufügen. Für PHPStorm (xdebug, mysql und web) verwende ich:

  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
25
brianlmerritt

Anscheinend haben Sie nicht erwähnt, welchen Anbieter Sie verwenden. Ab Vagrant 1.7 unterstützen viele VM Anbieter (wie VirtualBox, HyperV) die folgende Konfiguration in Ihrer Vagrant-Datei:

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

Überprüfen Sie in der vagrant documentation , welchen Anbieter Sie verwenden.

6
mehmet