72 votes

Comment puis-je créer une VM dans Vagrant avec VirtualBox avec deux CPUs ?

Sous Windows 7 64 bits, j'essaie de démarrer une VM (Ubuntu 32 bits). J'ai du mal à faire en sorte que ma VM affiche deux cœurs malgré l'ajout de l'option modify vm dans mon fichier Vagrant. Ma version de Vagrant est 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

Avec ce fichier Vagrant, j'émets l'instruction vagrant up commande. Ensuite, je lance vagrant ssh suivi par lscpu ce qui donne :

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

Je pense que les CPU devraient être au nombre de 2, donc ma VM n'a qu'un seul CPU pour le moment. Comment puis-je faire en sorte que 2 CPU s'affichent lorsque j'exécute la commande lscpu ?

0 votes

Toutes les options vb.* sont documentées. aquí .

80voto

nikhil Points 913

Ajouter vb.customize ["modifyvm", :id, "--ioapic", "on"] à la config.vm.provider dans votre fichier Vagrant.

Regarder la boîte virtuelle documentation il est mentionné :

"Remarque L'activation de l'APIC d'E/S est nécessaire pour les systèmes d'exploitation invités 64 bits, notamment Windows Vista. 64 bits, en particulier Windows Vista ; elle est également requise si vous souhaitez utiliser plus d'un CPU virtuel dans une machine virtuelle."

0 votes

J'ai quelques problèmes avec cela. Quand j'essaie de mettre ioapic enable ma VM me montre un message d'erreur...

0 votes

J'ai essayé ce qui précède sur un CentOS 6.5 boîte, mais lscpu montre toujours 1 CPU. Ensuite, j'ai essayé ce qui suit, sans succès : vb.customize ["modifyvm", :id, "--cpuexecutioncap", "50"]

2 votes

@Rob3 : commencez par lire ce message d'erreur. Le message d'erreur ne dit pas que "c'est cassé". Il est destiné à vous aider à comprendre ce qui ne va pas. Le plus important est donc de lire le message d'erreur. De même, si vous demandez de l'aide et que vous ne postez pas votre message d'erreur, personne n'essaiera de vous aider.

35voto

brianlmerritt Points 1

Si vous exécutez vagrant à l'aide d'Oracle Virtualbox, le problème le plus courant est celui de Hyper-V sous Windows 7, 8 ou 10. Cela vous limitera à 32 bits et à un seul processeur.

Exécutez ou recherchez "Fonctionnalités de Windows" et sélectionnez "Activer ou désactiver les fonctionnalités de Windows".

Dans les cases à cocher, assurez-vous que Hyper-V est désactivé - vous ne pouvez pas activer VT-x pour Virtualbox si Microsoft Hyper-V le monopolise.

Ensuite, vous pouvez rendre le démarrage de votre fichier Vagrantfile très convivial avec :

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

En supposant que vous voulez avoir deux cœurs en fonctionnement et un peu plus de 2 Gig de mémoire

ps - n'oubliez pas d'ajouter votre transfert de port. Pour PHPStorm (xdebug, mysql, et web) j'utilise :

  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

7voto

mehmet Points 3219

Il semble que vous n'ayez pas mentionné le fournisseur que vous utilisez. Depuis Vagrant 1.7, de nombreux fournisseurs de VM (tels que VirtualBox, HyperV) prennent en charge la configuration suivante dans votre fichier Vagrant :

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

Vérifiez le fournisseur spécifique que vous utilisez dans la rubrique documentation sur le vagabondage .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X