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 ;-)

Posts les plus consultés de ce blog

VirtualBox et USB

Je me suis longtemps battu pour que mes machines virtuelles Windows sous VirtualBox bénéficient d'un support correctement exploitable de l'USB. Bien que je faisais tout ce qu'il fallait faire, impossible de brancher le moindre périphérique USB sur une machine VirtualBox ayant Windows (toutes versions confondues). Je m'étais même tourné vers VMware Player pour avoir une machine virtuelle Windows pleinement exploitable pour mes (rares) besoins Windows de travail !

Bizarrement, ces difficultés n'existent pas avec une quelconque distribution GNU/Linux virtualisée (sauf cas technique bien spécifique à la distribution).

Notez que tous mes essais partent depuis une distribution GNU/Linux (Debian 8 Jessie, Mageia 5, Fedora 25, Manjaro). Pour l'anecdote, naviguant plus ou moins entre ces distributions, j'utilisais la version officielle de VirtualBox sous Mageia tandis que c'était la version fournie par le gestionnaire de paquet pour les autres. Il est donc possi…

WPS Office - WPS Office contre LibreOffice

En mettant en place toute la logithèque nécessaire sur un PC portable neuf, j'ai découvert la suite WPS Office préinstallée. En fait, j'ai découvert que cette suite était aussi disponible pour PC, dont Windows ET GNU/Linux, puisqu'elle est déjà disponible gratuitement pour Android et iOS. Cette suite propose un tableur (Spreadsheets), un traitement de texte (Writer) et une application de présentation (Presentation). L'interface se rapproche beaucoup (voire totalement) de l'interface actuelle de Microsoft Office (exit les menus pour faire place à des onglets thématiques). Voir les liens en bas.

Cette suite est proposé par la société chinoise Beijing Kingsoft Office Software Co sous licence propriétaire.

Les formats proposés sont les formats Microsoft Office et l'export en PDF mais aucunement les formats LibreOffice OpenDocument (ODF).

J'ai poussé la curiosité à la tester brièvement dans deux machines virtuelles, une sous Windows 10 et l'autre sous Mageia 5…

La méteo dans un terminal

Si vous voulez la météo, il existe des tas d'applications graphiques, des extensions dédiées pour divers systèmes d'exploitations et pour divers environnements de bureaux. sans oublier les multiples sites internet.
1 - La météo dans la console Il est également possible d'avoir la météo dans une console. Oui, j'oubliais ! L'astuce est plutôt pour les utilisateur GNU/Linux, BSD, Mac. Brefs, les systèmes d'exploitations qui offrent un terminal. ... On me dit dans l'oreillette que Windows 10 a désormais un "vrai" terminal sauce Linux. Je ne le connais pas, donc m'abstiens. Par contre, pour Windows, vous aurez en fin d'article la variante pour vous ;-)

Revenons à notre terminal. Pas besoin des droits root.

Pour la météo de Toulouse :
$ curl wttr.in/Toulouse
Pour la météo de Brest
$ curl wttr.in/Brest
Cas particulier pour les noms composés :
$ curl wttr.in/Le+Havre
Vous pouvez aussi saisir les coordonnées GPS. Si vous ne les avez pas, vous pouvez l…