Là où je travaille, nous utilisons des PC relativement puissants utilisant la distribution Debian Linux. Cependant, pour certains programmes que nous devons installer, il serait préférable d'avoir CentOS et ce seront nos principaux outils de travail. Changer le système d'exploitation pour tous les ordinateurs de notre lieu de travail est une possibilité, mais nous essayons de décider si l'utilisation de VirtualBox est un meilleur choix pour la simplicité.
Tout cela dépend du point suivant. Les programmes que nous devons exécuter sont des simulateurs qui sont des tâches très gourmandes en processeur qui peuvent facilement s'exécuter jusqu'à une heure ou plus chaque fois qu'une simulation est lancée. Nous devons décider si la dégradation des performances lors de l'utilisation de Virtual Box est suffisamment importante pour mériter notre changement de système d'exploitation.
Donc, ma question est de savoir si quelqu'un peut me dire de manière vérifiable quelles sont les performances atteintes lors de l'exécution d'une tâche gourmande en processeur dans une boîte virtuelle par rapport à son exécution sur le PC natif?
Merci.
la source
Il n'y a pas une seule bonne réponse à cela. Cela dépend beaucoup de la façon dont vous utilisez une machine virtuelle et des programmes.
Par exemple, l'utilisation de VMWare (un hyperviseur de type 2) et d'un programme purement lié au CPU a produit une vitesse CPU presque complète. Si j'utilisais le même hyperviseur et un programme avec beaucoup d'appels système, j'obtiendrais un sérieux ralentissement.
Et les choses changent également lorsque vous utilisez un système d'exploitation hyperviseur de type 1 (pas d'invité). Et même entre ceux-ci, vous avez beaucoup de variations. Par exemple Xen avec 5 modes (IIRC du week-end dernier, FOSDEM parle de Xen) qu'il prend en charge. De HW utilisant à para virtualisé.
Pour récapituler: Comme demandé, il peut varier de presque aucun ralentissement à un ralentissement sérieux.
Maintenant, si je me concentre sur VirtualBox, c'est un hyperviseur de type 2. Les programmes purement liés au CPU devraient convenir.
la source
En fait, il semble que Docker pourrait être une meilleure option pour ce que vous faites. Docker fournit des conteneurs, qui sont des sandbox isolés qui s'exécutent sur le même noyau. La surcharge d'appel système / d'E / S est nulle, car vos processus dans le conteneur ne sont pas différents de ceux de l'hôte.
Puisque vous utilisez déjà Linux, Docker serait un excellent moyen de fournir un environnement CentOS sans avoir à réinstaller toutes vos machines.
Consultez également mon utilitaire, Scuba, qui facilite l'exécution de choses comme les builds à l'intérieur d'un conteneur Docker. Au lieu de courir,
make
vous courriezscuba make
. C'est tout!la source