Dans l' article précédent, nous avons parlé de l'évaluation de base des performances des nouveaux serveurs dans notre projet cloud en utilisant l'exemple du test de Gilev pour 1C et 7zip dans un environnement physique "natif".
Maintenant que nous avons préparé les serveurs pour travailler dans notre cluster virtualisé, nous pouvons partager les résultats des tests en comparaison avec les résultats de tests similaires lors de l'installation du système d'exploitation sur un serveur physique sans utiliser la virtualisation. Ainsi, nous essaierons de voir s'il y a une diminution des performances et à quel point elle est critique (le cas échéant). Alors, commençons!
Tout d'abord, nous décrirons ce qui a été comparé à quoi dans notre petite expérience.
Le serveur physique était le même - Dell PowerEdge R640 (2x Intel Xeon Gold 6242R , 12x64 Go DDR4 3200 MHz, 2x240 Go SSD) dans l'assemblage d'usine. Le système d'exploitation dans lequel les tests ont été effectués était le même sur le serveur physique et sur la machine virtuelle plus loin - c'est CentOS 8 (4.18.0-240.1.1.el8_3.x86_64). Pour les tests dans un environnement virtuel, nous avons utilisé VMware ESXi 6.7.0, build 15160138.
En ce qui concerne les caractéristiques des configurations comparées, nous obtenons les éléments suivants:
1. Serveur physique:
- 2 processeurs avec 20 cœurs physiques / 40 cœurs virtuels (Hyper-Threading)
- 768 Go de RAM (en fait, le volume ne joue pas un rôle critique)
- Environ 240 Go d'espace utilisable sur le lecteur C
2. Machine virtuelle:
- 2 processeurs virtuels avec 40 cœurs virtuels
- 64 Go de RAM (suffisant pour les tests)
- Environ 200 Go d'espace utilisable sur le lecteur C
Quels tests allons-nous vérifier?
Nous nous limiterons ici à l'ensemble de tests suivant:
- Sysbench
- 7zip
- Geekbench
Un point important: tous les tests ont été exécutés avec Turbo Boost activé et les paramètres de performances maximales dans le BIOS. Le mode de consommation d'énergie pour ESXi est Équilibré (par défaut).
Alors, quels sont les résultats:
1. "sysbench --test = cpu --num-threads = 40 run"
Sur un serveur physique ...
sysbench 1.0.20 (using bundled LuaJIT 2.1.0-beta2)
Running the test with following options:
Number of threads: 40
Initializing random number generator from current time
Prime numbers limit: 10000
Initializing worker threads...
Threads started!
CPU speed:
events per second: 47238.17
General statistics:
total time: 10.0009s
total number of events: 472487
Latency (ms):
min: 0.68
avg: 0.85
max: 1.46
95th percentile: 0.99
sum: 399892.63
Threads fairness:
events (avg/stddev): 11812.1750/824.36
execution time (avg/stddev): 9.9973/0.00
Sur une machine virtuelle ...
sysbench 1.0.20 (using bundled LuaJIT 2.1.0-beta2)
Running the test with following options:
Number of threads: 40
Initializing random number generator from current time
Prime numbers limit: 10000
Initializing worker threads...
Threads started!
CPU speed:
events per second: 46474.85
General statistics:
total time: 10.0009s
total number of events: 464850
Latency (ms):
min: 0.74
avg: 0.86
max: 53.87
95th percentile: 1.01
sum: 398802.05
Threads fairness:
events (avg/stddev): 11621.2500/1156.95
execution time (avg/stddev): 9.9701/0.02
En bref, les résultats peuvent être résumés dans le tableau suivant:
Paramètre | Serveur | VM | Différence |
---|---|---|---|
Événements par seconde | 47238,17 | 46474,85 | -1,62% |
Latence (moyenne) | 0,85 ms | 0,86 ms | + 1,2% |
Ce n'est pas une si grande différence ... Voyons ce qui se passe ensuite.
2. 7zip
Sur un serveur physique ...
7-Zip (a) [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
p7zip Version 16.02 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,64 bits,80 CPUs Intel(R) Xeon(R) Gold 6242R CPU @ 3.10GHz (50657),ASM,AES-NI)
Intel(R) Xeon(R) Gold 6242R CPU @ 3.10GHz (50657)
CPU Freq: - - - - - - - - -
RAM size: 772271 MB, # CPU hardware threads: 80
RAM usage: 17650 MB, # Benchmark threads: 80
Compressing | Decompressing
Dict Speed Usage R/U Rating | Speed Usage R/U Rating
KiB/s % MIPS MIPS | KiB/s % MIPS MIPS
22: 219383 7214 2959 213417 | 2433655 7750 2678 207532
23: 207598 7028 3010 211518 | 2418901 7873 2660 209301
24: 204763 7174 3069 220162 | 2364952 7826 2652 207568
25: 198526 7168 3162 226669 | 2384016 7909 2682 212138
---------------------------------- | ------------------------------
Avr: 7146 3050 217941 | 7839 2668 209135
Tot: 7493 2859 213538
Sur une machine virtuelle ...
7-Zip (a) [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
p7zip Version 16.02 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,64 bits,80 CPUs Intel(R) Xeon(R) Gold 6242R CPU @ 3.10GHz (50657),ASM,AES-NI)
Intel(R) Xeon(R) Gold 6242R CPU @ 3.10GHz (50657)
CPU Freq: 3769 3775 3772 3772 3773 3771 3772 3772 3772
RAM size: 64134 MB, # CPU hardware threads: 80
RAM usage: 17650 MB, # Benchmark threads: 80
Compressing | Decompressing
Dict Speed Usage R/U Rating | Speed Usage R/U Rating
KiB/s % MIPS MIPS | KiB/s % MIPS MIPS
22: 190208 6089 3039 185035 | 2001333 6449 2646 170665
23: 179252 5785 3157 182637 | 2077835 6995 2570 179789
24: 184889 6251 3181 198793 | 2069792 7037 2582 181662
25: 192625 6794 3237 219932 | 2157590 7441 2580 191990
---------------------------------- | ------------------------------
Avr: 6230 3154 196599 | 6981 2595 181027
Tot: 6605 2874 188813
Résultats en bref:
Paramètre | Serveur | VM | Différence |
---|---|---|---|
Utilisation totale du processeur% | 7493 | 6605 | -11,8% |
Total R / U MIPS (utilisation normalisée du processeur à 100%) | 2859 | 2874 | + 0,5% |
MIPS total | 213538 | 188813 | -11,6% |
Ici, les résultats sont plus intéressants. Nous voyons que MIPS est directement corrélé à l'indicateur d'utilisation. Peut-être que 7zip prend en compte d'une manière ou d'une autre la fréquence du processeur déterminée par le système d'exploitation invité. Étant donné que Turbo Boost est une technologie matérielle, elle n'est pas traduite au niveau du système d'exploitation des machines virtuelles, mais n'est disponible que pour l'hyperviseur. Cependant, la fréquence utilisable réelle de chaque cœur de VM peut facilement atteindre les fréquences Turbo Boost. Cela peut être vu dans esxtop .
3. Le dernier est le prochain en ligne aujourd'hui - Geekbench 5. Voyons ce qui s'est passé.
→ Serveur physique
→ Machine virtuelle
Paramètre | Serveur | VM | Différence |
---|---|---|---|
Score à un cœur | 1186 | 1052 | -11,3% |
Score multicœur | 31093 | 28872 | -7,1% |
Voici les résultats. Il est difficile d'en tirer des conclusions précises. Vous pouvez seulement remarquer que les performances finales d'une application particulière dépendent de nombreux facteurs et qu'un environnement virtuel et un système d'exploitation invité correctement configurés ne donneront pas toujours une baisse des performances, comme nous pouvons le voir dans les résultats de Sysbench.
Et, bien sûr, n'oubliez pas les avantages de la virtualisation en général (densité plus élevée de placement de services, coûts d'investissement et d'exploitation inférieurs, optimisation énergétique, rapidité de déploiement et de récupération des services).
J'espère que l'article vous a été intéressant et utile. Eh bien, nous sommes allés ajouter cet hôte à notre cluster !