# Virtualbox avec processeur non VT-x et Hyper-Threading

**URL:** <https://www.debian-fr.org/t/virtualbox-avec-processeur-non-vt-x-et-hyper-threading/65846>\
**Category:** Trucs et Astuces\
**Created:** [Février 21, 2016, 9:38 UTC](https://www.debian-fr.org/t/virtualbox-avec-processeur-non-vt-x-et-hyper-threading/65846 "2016-02-21T21:38:44Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![cedric058](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/c/d2c977/32.png) [@cedric058](https://www.debian-fr.org/u/cedric058)\
**Post date:** [Février 21, 2016, 9:38 UTC](https://www.debian-fr.org/t/virtualbox-avec-processeur-non-vt-x-et-hyper-threading/65846/1 "2016-02-21T21:38:44Z")

</div>

J’ai un Atom D525 qui ne dispose pas de la virtualisation VT-x Intel.  
C’est un double coeur avec Hyper-Threading (ici une sorte d’émulation de 4 CPU)

Problème:  
Sous virtualbox, il est possible de n’utilser qu’un seul des coeurs sans la virtualisation VT-x.  
Dans la pratique, seulement une Thread du processeur est utilisée.  
Ainsi l’utilisation maximum du CPU pour virtualbox ne depasse pas 25%.

Solution:  
Désactiver l’Hyper-Threading dans le BIOS.  
Maintenant l’utilisation maximum du CPU pour virtualbox est passé à 50%. 😃

---

<div class="post-metadata">

**Author:** ![etxeberrizahar](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/e/43a26b/32.png) [@etxeberrizahar](https://www.debian-fr.org/u/etxeberrizahar)\
**Post date:** [Février 21, 2016, 9:38 UTC](https://www.debian-fr.org/t/virtualbox-avec-processeur-non-vt-x-et-hyper-threading/65846/2 "2016-02-21T21:38:55Z")

</div>

25% de 4 = 1  
contre  
50% de 2 = 1  
Poussons le bouchon. Pour utiliser 100% de la resource CPU, il suffirait de remplacer le processeur à cœurs multiples par un processeur à cœur unique (1/1).

Intuitivement nous dirions que ce serait plus pénalisant qu’avantageux. On peut penser qu’on tire davantage sur la corde en sollicitant un thread sur deux disponibles (1/2) plutôt qu’un thread sur quatre disponibles (1/4).

Nous ne comprenons pas quel est l’interêt de cette «astuce». Quel est le but recherché ? Est-ce profitable ? En quelle mesure ?

---

<div class="post-metadata">

**Author:** ![cedric058](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/c/d2c977/32.png) [@cedric058](https://www.debian-fr.org/u/cedric058)\
**Post date:** [Février 21, 2016, 9:38 UTC](https://www.debian-fr.org/t/virtualbox-avec-processeur-non-vt-x-et-hyper-threading/65846/3 "2016-02-21T21:38:57Z")

</div>

C’est sur qu’avec un processeur à un seul coeur et de l’hyper-threading, il vaut mieux garder peu de ressources pour le système hôte.  
Mais si on dispose d’au moins deux coeurs et de l’hyper-threading, ET QUE L’ON N’EN DEMANDE PAS TROP AU SYSTEME HÔTE, à mon avis, ça peut éventuellement valoir le coup.

Sans la technologie VT-x, il est impossible de lancer plusieurs machines virtuelles simultanément. (Enfin c’est ce que j’ai constaté avec Virtualbox).

Que je désactive ou pas l’hyper-threading, à la moindre sollicitation du système invité, virtualbox prend toutes les ressources qui lui sont disponible.  
Comme je ne sollicite pas trop le système hôte, il dispose toujours de suffisament de ressouces avec ou sans hyper-theading.

> [@](#):
>
> Quel est le but recherché ?

Mon but est d’améliorer les performances de la machine virtuelle, et par la même, la vitesse d’exécution des ses tâches.  
A savoir mon D525 obtient sur certain benchmark une note d’environ 700 points, ce qui est assez peu. C’est confortable, voir très confortable sur le système hôte (une wheezy), mais pour virtualbox c’est vraiment pas top.

> [@](#):
>
> Est-ce profitable ? En quelle mesure ?

La différence n’est pas flagrante avec ou sans hyper-threading sur mon D525. C’est pénible dans les deux cas.  
A première vue, les machines virtuelles semblent, j’ai bien dit semblent, un poil mieux fonctionner, sans hyper-threading.

Je ferais prochainement quelques tests pour voir si c’est vraiment avantageux.

---

<div class="post-metadata">

**Author:** ![cedric058](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/c/d2c977/32.png) [@cedric058](https://www.debian-fr.org/u/cedric058)\
**Post date:** [Février 21, 2016, 9:39 UTC](https://www.debian-fr.org/t/virtualbox-avec-processeur-non-vt-x-et-hyper-threading/65846/4 "2016-02-21T21:39:01Z")

</div>

Mon seul intérêt était d’améliorer les performances de la machine virtuelle.  
C’est assez frustrant de voir un processeur à 25%, pendant que la machine virtuelle “mouline”.

Après quelques tests et quelques observations, on dirai que la balance penche en faveur de l’hyper-threading.

1. Des tests de compression d’un fichier avi de 700Mo avec la commande tar:  
Avec hyper-threading: Environ 4 min 31 s  
Sans hyper-threading: Environ 4 min 37 s

2. Temps que la debian met pour “démonter” les addons de virtualbox  
Avec hyper-threading:  
Environ 45s  
Sans hyper-threading:  
Environ 1 min 05 s

3. Un test cpu en console trouvé sur internet  
$ sysbench --test=cpu --cpu-max-prime=10000 run

Avec hyper-threading:  
Test execution summary:  
total time: 68.5638s  
total number of events: 10000  
total time taken by event execution: 68.3634  
per-request statistics:  
min: 3.25ms  
avg: 6.84ms  
max: 18.77ms  
approx. 95 percentile: 7.43ms

Threads fairness:  
events (avg/stddev): 10000.0000/0.00  
execution time (avg/stddev): 68.3634/0.00

Sans hyper-threading:  
Test execution summary:  
total time: 68.6622s  
total number of events: 10000  
total time taken by event execution: 68.4572  
per-request statistics:  
min: 2.54ms  
avg: 6.85ms  
max: 20.09ms  
approx. 95 percentile: 7.43ms

Threads fairness:  
events (avg/stddev): 10000.0000/0.00  
execution time (avg/stddev): 68.4572/0.00

1. Des tests de lecture du disque virtuel

# hdparm -t -T /dev/sda

Avec hyper-threading:  
/dev/sda:  
Timing cached reads: 1416 MB in 1.96 seconds = 721.59 MB/sec  
Timing buffered disk reads: 124 MB in 3.04 seconds = 40.79 MB/sec

/dev/sda:  
Timing cached reads: 1382 MB in 1.97 seconds = 702.46 MB/sec  
Timing buffered disk reads: 130 MB in 3.00 seconds = 43.33 MB/sec

/dev/sda:  
Timing cached reads: 1440 MB in 1.96 seconds = 734.96 MB/sec  
Timing buffered disk reads: 134 MB in 3.03 seconds = 44.22 MB/sec

Sans hyper-threading:  
/dev/sda:  
Timing cached reads: 1372 MB in 1.97 seconds = 697.42 MB/sec  
Timing buffered disk reads: 122 MB in 3.02 seconds = 40.38 MB/sec

/dev/sda:  
Timing cached reads: 1398 MB in 1.97 seconds = 710.81 MB/sec  
Timing buffered disk reads: 122 MB in 3.01 seconds = 40.50 MB/sec

/dev/sda:  
Timing cached reads: 1436 MB in 1.97 seconds = 730.04 MB/sec  
Timing buffered disk reads: 132 MB in 3.04 seconds = 43.36 MB/sec

1. Un test en écriture sur le disque virtuel

# dd bs=1M count=200 if=/dev/zero of=test

Avec hyper-threading:  
de 10.4 à 11.5 MB/s

Sans hyper-threading:  
Environ 10.8 MB/s

---

<div class="post-metadata">

**Author:** ![fran.b](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/f/d78d45/32.png) [@fran.b](https://www.debian-fr.org/u/fran.b)\
**Post date:** [Février 21, 2016, 9:39 UTC](https://www.debian-fr.org/t/virtualbox-avec-processeur-non-vt-x-et-hyper-threading/65846/5 "2016-02-21T21:39:02Z")

</div>

L’hyperthreading consiste à mieux exploiter un processeur en lui faisant exécuter plusieurs taches via une duplication des unités logiques (les coeurs). C’est comme les fils «threads», même données mais processus différents. La gestion du système peut ralentir parfois le bouzin (par exemple si les données d’un processus rentre pile dans la mémoire cache, à deux processus, ça déborde et du coup l’accès mémoire est ralenti, on doit pouvoir trouver un cas où ça ralentit le tout) mais en général le gain est net. Honnètement, je ne vois pas l’intérêt de supprimer l’HT.
