J'utilise VirtualBox 5.1 en cours d'exécution dans un hôte avec 48 processeurs et 250 Go de RAM la machine virtuelle que j'importe (l'invité) avait initialement 2 processeurs et 4 Go de RAM.Y a-t-il un nombre maximum de processeurs qu'un VirtualBox peut avoir?
À l'intérieur de cette machine, je cours un processus avec Java qui démarre un nombre dynamique de threads pour effectuer certaines tâches.
je l'ai couru avec les configurations ci-dessous:
tout le processus dans mon ordinateur portable (2CPUs/4 Go de RAM) ~ 11 secondes
même programme dans la machine virtuelle sur le serveur (15 processeurs et 32 Go de RAM) ~ 45 secondes
même programme dans la machine virtuelle sur le serveur (20 processeurs et 32 Go de RAM) ~ 100+ seconde
même programme sur la machine virtuelle dans le ser (10 processeurs et 32 Go de RAM) ~ 5+ secondes
Je pensais d'abord qu'il y avait un problème dans la façon dont je gérais les threads à partir de Java, mais après de nombreux tests, j'ai compris qu'il y avait une relation entre le nombre de cpus que la machine virtuelle a et ses performances, le maximum était 10, après que la performance globale de la machine ralentit (cpu famine?)
la machine virtuelle exécute Oracle Enterprise Linux 6.7 et l'hôte exécute Oracle Enterprise Linux 6.9
Je n'ai pas trouvé de limite stricte dans la documentation de la machine virtuelle concernant le nombre de processeurs
Existe-t-il un paramètre qui doit être défini pour activer/tirer parti de plus de 10 processeurs dans une instance de VirtualBox?
il n'y a pas juste « hôte avec 48 CPU ". Il a plusieurs paquets de processeurs physiques (sockets), donc c'est [NUMA System] (https://en.wikipedia.org/wiki/Non-uniform_memory_access). Selon les tâches que vous exécutez avec java, il peut y avoir des effets limitant l'évolutivité: une tâche de calcul pure avec une faible intensité de la mémoire sera bonne, et travailler avec la mémoire ne sera pas linéaire si le programme a été créé sans tenir compte des effets NUMA. Donc, le problème n'est probablement pas lié à votre solution VM, mais à votre programme Java Dynamic et il aura une évolutivité limitée avec n'importe quelle machine virtuelle ou réelle NUMA. – osgx
Également: y a-t-il eu des utilisateurs de l'hôte VM (ou d'autres machines virtuelles) lorsque vous avez effectué des minutages? Veuillez décrire votre tâche Java, pas la machine virtuelle. – osgx
c'était juste moi sur le système, pas d'autres utilisateurs/processus en cours d'exécution –