Accéder au contenu principal

Consommation mémoire et CPU - VirtualBox et VMware Player

Deux programmes qui ont le même objectifs mais développés séparément peuvent avoir des consommations mémoire et processeurs différentes. Cela parait évident mais vite oublié. Je m'en suis rendu compte par hasard avec VirtualBox et VMware Player où le premier semble être plus gourmands que le second.

1 - Constat

Pour des besoins personnels, mon système principal étant une distribution GNU/Linux, j'ai été obligé de virtualiser une machine Windows. Lorsque j'ai créé cette machine virtuelle, j'ai du me rabattre vers VMware qui gérait alors mieux l'USB que VirtualBox. Aujourd’hui, VirtualBox gère fort bien l'USB mais je n'ai jamais vraiment eu envie de migrer ma machine virtuelle de la solution propriétaire VMware vers l'alternative libre VirtualBox. Mais ce n'est pas le sujet.

Dernièrement, pour d'autres besoins, j'ai virtualisé une machine Windows 10 assez basique sous VirtualBox.

Or, ayant constamment ksysguard démarré sous le coude, je me suis aperçu que la charge de mémoire RAM est plus faible avec la machine virtuelle Windows 10 sous VMware que la machine virtuelle Windows 10 sous VirtualBox. Pourtant, ma machine habituelle sous VMware est largement plus étoffée et complète que celle de tests sous VirtualBox. En clair, j'ai chargé tous les programmes que j'estime nécessaire sur ma machine virtuelle VMware alors que je n'ai quasiment rien ajouté sur celle sous VirtualBox.

2 - Machines de tests

J'ai creusé le sujet avec l'idée de mesurer les consommations avec des machines virtuelles basiques, toutes construites systématiquement à l'identique sous VMware et VirtualBox. Ensuite, je prends les mesures au démarrage de la machine virtuelle, sans jamais lancer quoi que ce soit dedans. Nous sommes d'accord que l'idée n'est pas de mesurer les besoins d'un quelconque système mais les besoins de la solution de virtualisation.

Donc, pour rappel :
  • Machine hôte sous GNU/Linux (Mageia 5.1) en 64 bits et à jour
  • VirtualBox et VMware Player à jour
  • VirtualBox installé en utilisant le binaire officiel de l'équipe VirtualBox
  • Machine hôte disposant de 16 Go de mémoire RAM
  • Toutes les machines virtuelles en 64 bits et avec 4 Go de mémoire RAM
  • Toutes les machines strictement identiques sous VMware et VirtualBox (y compris les réglages)
  • Les extensions / additions VirtualBox / VMware ne sont pas installées.
  • Toutes les mesures prises une fois le système de la machine virtuelle pleinement opérationnel

3 - Comment mesurer

Comment mesurer les consommations ? Inutile d'utiliser la commande free qui obligerait à faire des calculs trompeurs. C'est la commande suivante que je vais utiliser :
  • ps -C application -o pmem,pcpu
Les résultats seront les suivants :
  • pmen : pourcentage de mémoire utilisé
  • pcpu : pourcentage de processeur utilisé
 Avant démarrage d'une quelconque machine virtuelle, voici les résultats.
  • ps -C vmplayer -o pmem,pcpu retourne  0.4  0.6 (0.4% de RAM et 0.6% de CPU)
  • ps -C VirtualBox -o pmem,pcpu retourne  0.3  0.1 (0.3% de RAM et 0.1% de CPU)
  • Donc dans ce cas, VMware Player est légèrement plus gourmand que VirtualBox (mais si peu).
A noter que pour VirtualBox, le résultat retourne 2 groupes de valeurs tels que, pour Windows 10 :
  • 0.3 et 0.1 ce qui correspond à la fenêtre générale de VirtualBox, soit le gestionnaire de machines virtuelles.
  • 27.3 et 52.1 ce qui correspond à la seule fenêtre de la machine virtuelle lancée.
  • Je prends donc le second groupe de valeurs.

4 - Résultats

Voici les résultats des machines suivantes :
  • Windows 10 (version 1607 14393.693) :
    • VMplayer : 0.5 (% de RAM) et 1.1 (% CPU)
    • VirtualBox : 27.3 (% de RAM) et 52.1 (% CPU)
  • Debian 8.7 Jessie (KDE) :
    • VMplayer : 0.5 (% de RAM) et 0.9 (% CPU)
    • VirtualBox : 6.9 (% de RAM) et 16.1 (% CPU)
  • Fedora 25 (Gnome 3) :
    • VMplayer : 0.5 (% de RAM) et 1.1 (% CPU)
    • VirtualBox :  9.8 (% de RAM) et 45.1 (% CPU)
  • Mageia 5.1 (KDE) :
    • VMplayer : 0.5 (% de RAM) et 1.0 (% CPU)
    • VirtualBox : 6.9 (% de RAM) et 32.4 (% CPU)
  • Manjaro 16.10.3 (KDE) :
    • VMplayer :  0.5 (% de RAM)  0.6 (% CPU)
    • VirtualBox : 9.3 (% de RAM)  et 56.8 (% CPU)
  • Ubuntu 16.10.2 LTS :
    • VMplayer :  0.5 (% de RAM) et 0.0 (% CPU)
    • VirtualBox : 11.3 (% de RAM) et 65.5 (% CPU)

5 - Conclusion

Effectivement VMware Player est largement moins exigeant que VirtualBox que ce soit en RAM comme en processeur et quel que soit le système d'exploitation virtualisé. En fait, il faudrait même ajouter à ces résultats, concernant VirtualBox, la partie concernant la fenêtre qui permet de gérer toutes les machines virtuelles, ce qui ferait encore grimper cette solution en gourmandise.

Ceci dit, à vous de voir la solution que vous voulez utiliser selon vos besoins, votre machine hôte et votre philosophie. Pour les puristes du libres qui exècrent les applications propriétaires, ces résultats ne signifieront rien ;-)

Commentaires

Posts les plus consultés de ce blog

Tablette Samsung Galaxy tab 2 10.1 - Episode 2

Je tente toujours de recycler ma vieille tablette. Il y a quelques jours, j'avais tenté d'installer LineageOS vainement . Je retente encore. Plutôt que de passer par une machine virtuelle (et risquer les possibles barrages), je suis passé par un véritable système Windows. 1- Le root J'ai suivi ce tutoriel pour rooter ma tablette.  L'opération s'est terminé correctement. A l'issue de cette manipulation, après un redémarrage de la machine, j'ai installé Root Checker Basic (plusieurs versions existent venant de divers programmeurs) qui, après vérification, me dit que l'appareil .... n'est pas rooté ! Encore ?! J'installe donc SuperSU pour installer le root et redémarre. Après ce nouveau redémarrage, je valide l'autorisation demandée par SuperSU puis relance une vérification avec Root Checker qui m'informe que ..... l'appareil est rooté. Ah ! Enfin ! 2 - Sauvegarder Depuis le Store, j'ai installé TWRP pour faire les s

Recyclage de matéreil Android

Ma vieille tablette Samsung Galaxy Tab 2 10.1 acquise en 2012 était devenue poussive. Depuis longtemps d'ailleurs ! Ayant reçu la nouvelle tablette, j'ai voulu recycler l'ancienne. Au départ, je pensais remplacer Android par Lineage OS. Cette vieille tablette est référencée compatible avec Lineage OS tandis que quelques tutoriaux trainent ici et là. Passer sur Lineage OS : facile ou pas dans mon cas ? ... Pas encore gagné ! Une tablette... Je me sers essentiellement de la tablette pour regarder 4 conneries "trucs" divers sur le Web et, surtout, lire. De la lecture de romans (polars, SF, romans à base historique, action, techno-trillers ...) et autres études variées (sur l'Histoire, la géopolitique ...). Mais aussi des BD via un abonnement chez Izneo et des achats chez comiXology . Il est évidemment possible de lire des BD aux formats CBZ ou CBR (qui ne sont que des archives ZIP ou RAR dont on aura modifié l'extension) grâce à diverses applications

Mageia 8 - Retour

Mageia 8 vient très récemment de sortir. L'occasion de mettre à niveau mes machines. Je dispose d'un PC fixe avec 2 installations Mageia (dont une de "production" et l'autre à des fins de test) ainsi qu'un PC portable MSI.  1- PC fixe Sur ma tour faite sur mesure et datant de 2012, la mise à niveau de Mageia 7 vers 8 s'est mal passée. Mageia 7 était préalablement bien à jour. J'avais suivi le wiki pour faire une mise à niveau en ligne avec urpmi. Je précise que : Je n'ai aucune application compilée sur mesure (que du RPM). Je n'ai aucune application en 32 bits. Je n'ai utilisé qu'un minimum de modules externes pour personnaliser Plasma. J'ai un boot legacy. Mon erreur a été très probablement de ne pas simuler préalablement l'installation (donc aussi de mieux lire attentivement les notes de version !) ce qui m'aurait permis de constater à temps que certains paquets ne pouvaient être installés et mis à niv