Comparaison des performances des machines virtuelles pour 6 plateformes cloud: Selectel, MCS, I. Cloud, Google Cloud, AWS et Azure

Tout à l'heure, je suis tombé sur deux articles d'un blog d'entreprise liés aux nuages ​​- un sur Kubernetes, et le second était une tentative de mesurer les performances en utilisant une technique qui me semblait douteuse (ce n'est pas sans raison qu'il s'agissait d'un spoiler).

J'ai aussi quelque chose Ă  dire sur les K8, mais parlons des performances.

La méfiance à l'égard des résultats a été causée par de nombreux facteurs, mais les principaux pour moi étaient les suivants: il n'y avait pas de paramètres pour exécuter les tests, le nombre d'itérations n'a pas été annoncé, la façon dont les machines ont été choisies n'ont pas été annoncées et il n'y avait pas non plus de configuration détaillée. C'est douteux en général.
En général, j'utilise principalement Google Cloud et AWS (au total, je les ai rencontrés pendant une douzaine d'années d'expérience) et je ne travaille pas particulièrement avec des fournisseurs de cloud nationaux, mais, par coïncidence, j'ai des comptes actifs dans Selectel, MCS, I. Cloud et, après ce test, également dans Azure.

Heureusement, toutes ces plateformes sont publiques et quoi que j'essaye, tout le monde peut y aller, répéter et vérifier s'il le souhaite.

Le résultat de tout cela a été la pensée - pourquoi ne pas dépenser quelques centaines de roubles , tout le week - end et vraiment ne pas mesurer pensivement les six plates-formes et découvrir laquelle donne les meilleures performances en termes de coût et en nombre absolu avec les mêmes configurations, et en même temps comparer les fournisseurs mondiaux avec Russe.
Et comme il s'est avéré, pour clarifier certaines des «fonctionnalités» dans l'allocation des ressources et vous rappeler ainsi que d'autres que c'est loin d'être toujours et pas sur toutes les plateformes pour le même prix que vous pouvez obtenir des performances prévisibles.

Les résultats n'étaient pas pour autant phénoménaux, mais à mon avis extrêmement curieux.

Pour ceux intéressés, je demande chat.

Méthodologie


Machines virtuelles


Chaque fournisseur de cloud s'exécute séquentiellement dans différentes zones de disponibilité (s'il y a deux zones, puis 1 machine dans la première zone et 2 dans la seconde), trois machines virtuelles avec 4 CPU, 8 Go de RAM et un disque système de 50 Go.

Le type de processeur / instance est le plus récent disponible, s'il y a un choix.

Type de machine virtuelle - partagé avec allocation complète du noyau.

Type de disque - SSD réseau avec possibilité de remontage sur une autre VM.

Les options d'allocation garantie des IOPS ou des machines optimisées pour cela n'ont pas été utilisées, si cela n'est pas prévu par les conditions générales d'utilisation, et vous ne pouvez pas le refuser.

Le système de fichiers par défaut est ext4.

Aucun réglage manuel du système n'a été effectué.

Une série de tests a été lancée sur chacune des machines; les valeurs totales pour chaque machine ont été moyennées.

Les performances totales de la plate-forme sont exprimées comme la moyenne arithmétique des valeurs de test moyennes pour chacune des machines virtuelles, mais l'écart-type est également dans les tableaux pour les personnes intéressées.

Système d'exploitation - Ubuntu 16.04 est le dernier niveau de correctif disponible.

Calcul des coûts


Le calcul des coûts a été effectué sans tenir compte des éventuels bonus accumulés par le fournisseur, sans tenir compte du coût du trafic, à partir du calcul du fonctionnement de la machine virtuelle pour un mois civil complet sans arrêt.

En outre, certaines plates-formes vous permettent de réduire considérablement le coût des ressources grâce à certaines restrictions (auxquelles vous pouvez survivre très habilement).

Pour AWS, ce sont des instances Spot; pour GCE, ce sont des instances Preemptible. Avec une architecture d'application appropriée, ils peuvent être utilisés avec succès sans lui nuire, mais avec l'avantage d'un portefeuille, il a été testé par moi personnellement et par des dizaines d'entreprises utilisant les deux.
Le type de disque dans Selectel peut également être attribué à cette catégorie. Malgré le fait que les disques de type «Quick» aient participé aux principales mesures, il existe toujours un «Universal» nettement moins cher, pas brillant en vitesse, mais adapté à un grand nombre de tâches. Les options avec son utilisation ont également été prises en compte dans les calculs finaux.

Les tests


Pour exécuter les tests, ce script a été écrit à partir duquel tous les paramètres de lancement sont visibles:

Script de test
#!/usr/bin/env bash TIME=60 # Workload 70% read 30% write cat > fio-rand.fio << EOL [global] name=fio-rand-RW filename=fio-rand-RW rw=randrw rwmixread=70 rwmixwrite=30 bs=4K direct=1 numjobs=1 time_based=1 runtime=${TIME} [file1] size=2G iodepth=16 EOL echo "Run FIO" for i in {1..3}; do echo "$i iter:" fio fio-rand.fio |grep -E "(read|write|bw|iops|READ|WRITE)" |grep -v "Disk" done echo "Run stress-ng." for i in {1,2,4}; do for z in {1..3}; do echo -n "$z iter. Stress-NG for $i CPU: " stress-ng --cpu $i --cpu-method matrixprod --metrics-brief -t $TIME 2>&1 |sed -n '6p'| awk '{print $5}' done done for i in {1,2,4}; do for z in {1..3}; do echo -n "$z iter. Sysbench CPU for $i thread(s): " sysbench --num-threads=$i --max-time=$TIME --test=cpu run 2>&1|grep "total time:"|awk '{print $3}' done done for i in {1,2,4}; do for z in {1..3}; do echo -n "$z iter. Sysbench Memory for $i thread(s): " sysbench --num-threads=$i --max-time=$TIME --test=memory run 2>&1| grep "Operations performed:" done done 


Pour tous les tests, Ă  l'exception du processeur Sysbench, plus c'est mieux.

Les résultats de tous les lancements ont été collectés dans des feuilles de calcul Excel pour de nouveaux calculs.
Eh bien, je l'ai fait en quelque sorte - je vous l'ai dit, maintenant je dois vous dire ce qui s'est passé.

Test


Un exemple de machine n'est pas un test.


Les nuages ​​sont généralement comparés aux serveurs de fer conventionnels. Je n'y vois pas beaucoup de sens, car le cloud n'est pas seulement et pas tellement directement la puissance de calcul, mais principalement l'écosystème, mais, néanmoins, je pense que beaucoup seront toujours intéressés par une telle comparaison. Eh bien, en général, quelque chose doit être comparé. Avec quelque chose de proche, célèbre et compréhensible.
Je n'avais pas la machine à repasser à portée de main, mais il y a une toute nouvelle station de travail Dell, c'est aussi un serveur domestique avec un processeur bien connu (E5-4650L @ 2,60 GHz), la quantité appropriée de mémoire DDR3 EEC pas la plus rapide (pour être honnête - la plus lente de ceux qui étaient généralement compatibles) et le SSD SmartBuy, acheté il y a environ 4 ans et récemment déplacé vers cet assemblage.

Puisque tout cela fonctionne sous FreeBSD 11.2, une virtualochka appropriée a été créée en utilisant bhyve et un test y a été exécuté.

Journal de lancement
 Run FIO 1 iter: read : io=891652KB, bw=14861KB/s, iops=3715, runt= 60001msec bw (KB /s): min= 116, max=17520, per=100.00%, avg=15449.34, stdev=2990.83 write: io=381908KB, bw=6365.3KB/s, iops=1591, runt= 60001msec bw (KB /s): min= 49, max= 7752, per=100.00%, avg=6620.06, stdev=1290.46 READ: io=891652KB, aggrb=14860KB/s, minb=14860KB/s, maxb=14860KB/s, mint=60001msec, maxt=60001msec WRITE: io=381908KB, aggrb=6365KB/s, minb=6365KB/s, maxb=6365KB/s, mint=60001msec, maxt=60001msec 2 iter: read : io=930228KB, bw=15504KB/s, iops=3875, runt= 60001msec bw (KB /s): min= 5088, max=17144, per=99.98%, avg=15500.61, stdev=2175.23 write: io=398256KB, bw=6637.6KB/s, iops=1659, runt= 60001msec bw (KB /s): min= 2064, max= 7504, per=100.00%, avg=6639.82, stdev=979.69 READ: io=930228KB, aggrb=15503KB/s, minb=15503KB/s, maxb=15503KB/s, mint=60001msec, maxt=60001msec WRITE: io=398256KB, aggrb=6637KB/s, minb=6637KB/s, maxb=6637KB/s, mint=60001msec, maxt=60001msec 3 iter: read : io=886780KB, bw=14779KB/s, iops=3694, runt= 60001msec bw (KB /s): min= 1823, max=17248, per=100.00%, avg=15520.09, stdev=2453.59 write: io=379988KB, bw=6333.3KB/s, iops=1583, runt= 60001msec bw (KB /s): min= 731, max= 7488, per=100.00%, avg=6647.33, stdev=1054.67 READ: io=886780KB, aggrb=14779KB/s, minb=14779KB/s, maxb=14779KB/s, mint=60001msec, maxt=60001msec WRITE: io=379988KB, aggrb=6333KB/s, minb=6333KB/s, maxb=6333KB/s, mint=60001msec, maxt=60001msec Run stress-ng. 1 iter. Stress-NG for 1 CPU: 12227 2 iter. Stress-NG for 1 CPU: 12399 3 iter. Stress-NG for 1 CPU: 12134 1 iter. Stress-NG for 2 CPU: 23812 2 iter. Stress-NG for 2 CPU: 23558 3 iter. Stress-NG for 2 CPU: 21254 1 iter. Stress-NG for 4 CPU: 39495 2 iter. Stress-NG for 4 CPU: 39876 3 iter. Stress-NG for 4 CPU: 42370 1 iter. Sysbench CPU for 1 thread(s): 11.0566s 2 iter. Sysbench CPU for 1 thread(s): 11.0479s 3 iter. Sysbench CPU for 1 thread(s): 11.0451s 1 iter. Sysbench CPU for 2 thread(s): 5.6159s 2 iter. Sysbench CPU for 2 thread(s): 5.5664s 3 iter. Sysbench CPU for 2 thread(s): 5.5407s 1 iter. Sysbench CPU for 4 thread(s): 2.8368s 2 iter. Sysbench CPU for 4 thread(s): 2.8801s 3 iter. Sysbench CPU for 4 thread(s): 2.8244s 1 iter. Sysbench Memory for 1 thread(s): Operations performed: 104857600 (2537704.01 ops/sec) 2 iter. Sysbench Memory for 1 thread(s): Operations performed: 104857600 (2536025.17 ops/sec) 3 iter. Sysbench Memory for 1 thread(s): Operations performed: 104857600 (2472121.34 ops/sec) 1 iter. Sysbench Memory for 2 thread(s): Operations performed: 104857600 (3182800.43 ops/sec) 2 iter. Sysbench Memory for 2 thread(s): Operations performed: 104857600 (3379413.65 ops/sec) 3 iter. Sysbench Memory for 2 thread(s): Operations performed: 104857600 (3306495.59 ops/sec) 1 iter. Sysbench Memory for 4 thread(s): Operations performed: 104857600 (4300089.71 ops/sec) 2 iter. Sysbench Memory for 4 thread(s): Operations performed: 104857600 (4163689.93 ops/sec) 3 iter. Sysbench Memory for 4 thread(s): Operations performed: 104857600 (4163996.47 ops/sec) 


Si vous traduisez les résultats dans une vue tabulaire, vous obtenez ce qui suit:
TestTer 1Ter 2Ter 3MoyenneStdev
FIO READ IOPS3715,003875,003694,003761.3399,00
FIO WRITE IOPS1591,001659,001583,001611,0041,76
CPU STRESS-NG 112227.0012399,0012134.0012253.33134,45
CPU STRESS-NG 223812.0023558.0021254.0022874.671409.27
CPU STRESS-NG 439495.0039876.0042370.0040580.331561,56
CPU Sysbench pour 111.0611.0511.0511.050,01
CPU Sysbench pour 25.625,575,545,570,04
CPU Sysbench pour 42,842,882,822,850,03
Sysbench mem t 12537704.012536025.172472121.342515283.5137388.96
Sysbench mem t 23182800.433379413.653306495.593289569.8999393.41
Sysbench mem t 44300089.714163689.934163996.474209258.7078662.11

Eh bien, il y a des données de référence, maintenant directement les résultats des fournisseurs de tests.

De plus, je ne citerai pas les journaux complets pour ne pas gonfler l'article, mais je les ai stockés, si vous le souhaitez, demandez un lien, je le partagerai, bien que les données qu'ils contiennent ont été transférées dans la table.

Nuage Yandex


Résultats pour la zone ru-central1-a:

Tableau des résultats
TestTer 1Ter 2Ter 3MoyenneStdev
FIO READ IOPS554,00543,00545,00547,335,86
FIO WRITE IOPS237,00232,00233,00234,002,65
CPU STRESS-NG 110236.0010045,0010161.0010147.3396,23
CPU STRESS-NG 219756.0019479.0020291.0019842.00412,77
CPU STRESS-NG 418743.0017906.0018192.0018280.33425,43
CPU Sysbench pour 111,9411,9511,9811,960,02
CPU Sysbench pour 27.197.236.166,860,61
CPU Sysbench pour 43,723,723,703,710,01
Sysbench mem t 12080442.662085059.552079872.002081791.402844,64
Sysbench mem t 22460594.622715142.012536824.572570853.73130641.04
Sysbench mem t 42978385.592928369.703020014.592975589.9645886.36


Résultats pour la zone ru-central1-b:

Tableau des résultats
TestTer 1Ter 2Ter 3MoyenneStdev
FIO READ IOPS543,00537,00523,00534,3310.26
FIO WRITE IOPS232,00230,00224,00228,674.16
CPU STRESS-NG 110634,0010848.0011870.0011117.33660,55
CPU STRESS-NG 222109.0020861.0021020.0021330.00679,30
CPU STRESS-NG 418964.0019449.0018992.0019135.00272,29
CPU Sysbench pour 111h3011,3511,3411,330,03
CPU Sysbench pour 25.875.885.895.880,01
CPU Sysbench pour 43,563,553,543,550,01
Sysbench mem t 12190808.152197111.572197600.122195173.283788.20
Sysbench mem t 22442631.192433028.202415710.662430456.6813643.25
Sysbench mem t 43010239.123168720.683088677.503089212.4379242.13


Résultats pour la zone ru-central1-c:

Tableau des résultats
TestTer 1Ter 2Ter 3MoyenneStdev
FIO READ IOPS541,00551,00558,00550,008.54
FIO WRITE IOPS232,00236,00239,00235,673,51
CPU STRESS-NG 110424,0010192.0010325,0010313.67116,41
CPU STRESS-NG 219637,0020330.0019585.0019850.67415,93
CPU STRESS-NG 428884.0028477.0028750.0028703.67207,42
CPU Sysbench pour 111,6711,6411,6811,670,02
CPU Sysbench pour 26.026.057.066.380,59
CPU Sysbench pour 43,403,403,403,400,00
Sysbench mem t 12131168.412130201.752142809.682134726.617016.81
Sysbench mem t 22777100.502592860.272226863.892532274.89280076.82
Sysbench mem t 42834838.092935298.852753443.732841193.5691093.99


Résultats résumés:
TestMoyenneMin. MoyenneAvg maxStdevStDev%
FIO READ IOPS543,89534,33550,008.381,5%
FIO WRITE IOPS232,78228,67235,673,661,6%
CPU STRESS-NG 110526.1110147.3311117.33518,724,9%
CPU STRESS-NG 220340.8919842.0021330.00856,614,2%
CPU STRESS-NG 422039.6718280.3328703.675786,9926,3%
CPU Sysbench pour 111,6511,3311,960,312,7%
CPU Sysbench pour 26.375.886,860,497,7%
CPU Sysbench pour 43,553,403,710,164,5%
Sysbench mem t 12137230.432081791.402195173.2856732.392,7%
Sysbench mem t 22511195.102430456.682570853.7372533.452,9%
Sysbench mem t 42968665.322841193.563089212.43124154,354,2%

Je veux porter une attention particulière à un fait remarquable.

Avec une charge complète de tous les cœurs de machines virtuelles dans les zones A et B, les performances totales sont inférieures à celles d'une charge de seulement deux cœurs sur quatre.

De plus, j'ai pris plus de voitures supplémentaires dans l'une des zones et j'ai effectué un test pour elles - le problème n'a pas disparu.

Je suppose qu'il s'agit d'un problème technique et qu'il est associé aux caractéristiques matérielles des machines utilisées pour les hyperviseurs et à leur prise en compte lors de l'allocation des ressources (je rappelle ce cas de la pratique). Eh bien, ou avec autre chose, je ne peux pas regarder à l'intérieur, mais je ne veux vraiment pas deviner.

J'espère que les camarades de Y. Oblak liront cet article et en feront quelque chose, et s'ils sont très chanceux, ils vous diront exactement quoi, sinon cela s'avère quelque peu offensant et parfois désagréable (beaucoup d'applications se concentrent sur le nombre de cœurs pour calculer le nombre de threads) .

Mail.RU Cloud (MCS)


Mail.ru n'a que deux zones d'accès, donc deux tests ont été effectués sur différentes machines dans la même zone.

Résultats pour la zone Moscou-Est (première VM):

Tableau avec les résultats
TestTer 1Ter 2Ter 3MoyenneStdev
FIO READ IOPS487,00538,00534,00519,6728,36
FIO WRITE IOPS209,00231,00229,00223,0012.17
CPU STRESS-NG 17359.006567,007022.006982.67397,46
CPU STRESS-NG 214144.0014916.0013137.0014065.67892.08
CPU STRESS-NG 421381.0021199.0021032.0021204.00174,55
CPU Sysbench pour 115,5416.2014,9815,570,61
CPU Sysbench pour 27h307,707,537,510,20
CPU Sysbench pour 44,024,093,793,960,16
Sysbench mem t 11117493.991161261.851423941.921234232.59165744.17
Sysbench mem t 21819474.621692128.171668347.811726650.2081262.88
Sysbench mem t 42357943.972379492.562312976.142350137.5633938.38


Résultats pour la zone Moscou-Est (deuxième VM):

Résultats des tests
TestTer 1Ter 2Ter 3MoyenneStdev
FIO READ IOPS475,00509,00472,00485,3320,55
FIO WRITE IOPS205,00218,00204,00209,007.81
CPU STRESS-NG 16953,007030.007127,007036.6787,19
CPU STRESS-NG 214623.0013945,0013523.0014030.33554,94
CPU STRESS-NG 427022.0027184.0027670.0027292.00337,23
CPU Sysbench pour 114,8813,4414h4514,260,74
CPU Sysbench pour 26,897.136,696,900,22
CPU Sysbench pour 43,523,493,683,570,10
Sysbench mem t 11129165.421238462.801344025.161237217.79107435.28
Sysbench mem t 21904396.371740914.981733216.871792842.7496684.92
Sysbench mem t 42416702.172437844.982384159.802412902.3227043.55


Résultats pour la zone Moscou-Nord:

Résultats des tests
TestTer 1Ter 2Ter 3MoyenneStdev
FIO READ IOPS510,00647,00613,00590,0071,34
FIO WRITE IOPS218,00277,00262,00252,3330,66
CPU STRESS-NG 19657.009742.009867,009755.33105,63
CPU STRESS-NG 219251.0020069,0019677,0019665.67409.12
CPU STRESS-NG 439020.0038665.0038461.0038715.33282,88
CPU Sysbench pour 112h4512,5312,6612,550,11
CPU Sysbench pour 26.256.206.226.220,02
CPU Sysbench pour 43.183.163.163.170,01
Sysbench mem t 12003899.511990350.381974380.861989543.5814775,85
Sysbench mem t 21990419.202022621.531934822.521982621.0844415.93
Sysbench mem t 42337084.522227633.062021779.212195498.93160090.01


Résultats résumés:

TestMoyenneMin. MoyenneAvg maxStdevStDev%
FIO READ IOPS531,67485,33590,0053,3610,0%
FIO WRITE IOPS228.11209,00252,3322/119,7%
CPU STRESS-NG 17924.896982.679755.331585,4420,0%
CPU STRESS-NG 215920.5614030.3319665.673243.4120,4%
CPU STRESS-NG 429070.4421204.0038715.338890.1030,6%
CPU Sysbench pour 114.1312,5515,571,5210,7%
CPU Sysbench pour 26,886.227,510,649,3%
CPU Sysbench pour 43,573.173,960,4011,2%
Sysbench mem t 11486997.991234232.591989543.58435 219,8129,3%
Sysbench mem t 21834038.011726650.201982621.08132864.827,2%
Sysbench mem t 42319512.932195498.932412902.32111890.394,8%

Il est intéressant de noter qu'il n'y a aucun problème de dégradation des performances lors de l'utilisation de quatre threads, et il semble que des noyaux honnêtes (quoique plutôt faibles) soient émis.

De plus, dans la zone Nord, des processeurs nettement plus puissants sont utilisés que dans la zone Est, la différence de performances à pleine charge atteint deux fois. Pour le même prix. Tirez vos propres conclusions.

Selectel


Les résultats de ses tests étaient très intéressants. En termes absolus, il fournit les machines 4 cœurs les plus puissantes de tous les fournisseurs testés.

Résultats pour la zone "Moscou - Berzarin-1":

Résultats des tests
TestTer 1Ter 2Ter 3MoyenneStdev
FIO READ IOPS2319,002294,002312,002308.3312,90
FIO WRITE IOPS998,00986,00995,00993,006.24
CPU STRESS-NG 111320.0011038.0010936.0011098.00198,91
CPU STRESS-NG 223164.0022093.0022558.0022605.00537.04
CPU STRESS-NG 443879,0044118.0044086.0044027.67129,74
CPU Sysbench pour 112.0111,9611,9711,980,02
CPU Sysbench pour 26.015,995,996.000,02
CPU Sysbench pour 43.013,003,003,000,01
Sysbench mem t 12158876.402162098.222158738.032159904.221901,32
Sysbench mem t 22413547.342340801.672569554.402441301.14116874.54
Sysbench mem t 42858920.382935705.542714476.622836367.51112325.57


Résultats pour la zone "Moscou - Berzarin-2":

Tableau avec les résultats
TestTer 1Ter 2Ter 3MoyenneStdev
FIO READ IOPS1735,001729,001724,001729.335,51
FIO WRITE IOPS745,00742,00740,00742,332,52
CPU STRESS-NG 118231.0018462.0018518.0018403.67152.13
CPU STRESS-NG 236965.0036495.0037006.0036822.00283,93
CPU STRESS-NG 474272.0074428.0074218.0074306.00109.05
CPU Sysbench pour 111.2211.1711h1511.180,03
CPU Sysbench pour 25,605,605,605,600,00
CPU Sysbench pour 42,832,812,812,820,01
Sysbench mem t 12396762.922405750.192394240.052398917.726050.06
Sysbench mem t 21980511.452079328.961968664.262009501.5660761.74
Sysbench mem t 42283159.052271698.712299665.982284841.2514059.32


Résultats pour la zone "Saint-Pétersbourg - Dubrovka-1":

Tableau avec les résultats
TestTer 1Ter 2Ter 3MoyenneStdev
FIO READ IOPS2550,002618,002666.002611.3358,29
FIO WRITE IOPS1096,001126,001147,001123,0025,63
CPU STRESS-NG 110801.0010512.0011175,0010829.33332,41
CPU STRESS-NG 221418.0021642.0023179.0022079.67958,62
CPU STRESS-NG 444183.0044557.0043012.0043917.33806.03
CPU Sysbench pour 111,9711,9911,9911,990,01
CPU Sysbench pour 25,995,996.005,990,01
CPU Sysbench pour 43.023,003,003.010,01
Sysbench mem t 12159958.702162062.662158540.582160187.311772.13
Sysbench mem t 22430650.732512678.852417945.572453758.3851420.53
Sysbench mem t 43171660.683018827.143343661.473178049.76162511.39


Tableau récapitulatif avec les résultats:
TestMoyenneMin. MoyenneAvg maxStdevStDev%
FIO READ IOPS2216.331729.332611.33448.1420,2%
FIO WRITE IOPS952,78742,331123,00193,4920,3%
CPU STRESS-NG 113443.6710829.3318403.674297.5932,0%
CPU STRESS-NG 227168.8922079.6736822.008363.9630,8%
CPU STRESS-NG 454083.6743917.3374306.0017513.1432,4%
CPU Sysbench pour 111,7211.1811,990,464,0%
CPU Sysbench pour 25,865,606.000,233,9%
CPU Sysbench pour 42,942,823.010,113,7%
Sysbench mem t 12239669.752159904.222398917.72137912.866,2%
Sysbench mem t 22301520.362009501.562453758.38252972.3911,0%
Sysbench mem t 42766419.512284841.253178049.76450 693,8116,3%

Comme je l'ai dit, parmi tous les testés, ce fournisseur fournit les machines les plus productives basées sur 4 threads. Mais ici, il y a une particularité - encore une fois, pour le même prix, nous obtenons une productivité presque 2 fois différente - comparer les résultats de Berezin-2 avec les autres.

Je voudrais également mentionner les disques très rapides à un prix raisonnable, les meilleurs disponibles parmi les trois fournisseurs nationaux testés. Dans le même temps, une machine avec le processeur le plus rapide a le lecteur le plus lent sur trois.

Il s’agit d’une sorte de loterie, bien que, même si vous n’avez pas de chance, tout restera très, très décent.

Google cloud


Les résultats des tests GCE n'ont pas apporté de surprise particulière.

Tout est assez prévisible, homogène et généralement conforme à ce qui est revendiqué.

Résultats pour la zone europe-west1-b:

Résultats des tests
TestTer 1Ter 2Ter 3MoyenneStdev
FIO READ IOPS924,00910,00888,00907,3318h15
FIO WRITE IOPS396,00391,00380,00389,008.19
CPU STRESS-NG 114237.0014137.0014094.0014156.0073,37
CPU STRESS-NG 228576.0028419.0028544.0028513.0082,96
CPU STRESS-NG 429996.0029880.0029449.0029775.00288,22
CPU Sysbench pour 112,6312,6612,6712,650,02
CPU Sysbench pour 26,526,416.386,440,08
CPU Sysbench pour 43,353,563,563,490,12
Sysbench mem t 12055240.492056617.632054720.942055526.35980.13
Sysbench mem t 21377683.731346931.631397680.791374098.7225563.81
Sysbench mem t 42279937.892275427.562278615.942277993.802318,63


Résultats pour la zone Europe-Ouest-1c:

Résultats des tests
FIO READ IOPS946,00995,00984,00975,0025,71
FIO WRITE IOPS406,00428,00422,00418,6711,37
CPU STRESS-NG 114256.0014250.0014423.0014309.6798,20
CPU STRESS-NG 228875.0029057.0029256.0029062.67190,56
CPU STRESS-NG 430317.0030462.0029478.0030085.67531,23
CPU Sysbench pour 112,5212,4912,6112,540,06
CPU Sysbench pour 26.286.306.316.290,02
CPU Sysbench pour 43,383,573,523,490,10
Sysbench mem t 12085832.842066794.242086303.392079643.4911130.26
Sysbench mem t 21368168.111535725.511710618.591538170.74171238.33
Sysbench mem t 42375534.542307610.222386046.892356397.2242576.47


Résultats pour la zone Europe-Ouest1-D:

Résultats des tests
TestTer 1Ter 2Ter 3MoyenneStdev
FIO READ IOPS885,00910,00943,00912,6729/09
FIO WRITE IOPS379,00390,00405,00391,3313.05
CPU STRESS-NG 114254.0014230.0014008.0014164.00135,63
CPU STRESS-NG 228262.0028321.0028473.0028352.00108,86
CPU STRESS-NG 429615.0029312.0029138.0029355.00241,39
CPU Sysbench pour 112,6112,6512,6612,640,03
CPU Sysbench pour 26.376.356.356.360,01
CPU Sysbench pour 43,433,563,553,520,07
Sysbench mem t 12050031.602068677.642052707.702057138.9810081.96
Sysbench mem t 21228313.901530374.731345581.791368090.14152 283,14
Sysbench mem t 42335035.152420871.722361505.392372470.7543956.33


Tableau récapitulatif avec les résultats:
TestMoyenneMin. MoyenneAvg maxStdevStDev%
FIO READ IOPS931.67907,33975,0037,624,0%
FIO WRITE IOPS399,67389,00418,6716,504,1%
CPU STRESS-NG 114209.8914156.0014309.6786,500,6%
CPU STRESS-NG 228642.5628352.0029062.67372,631,3%
CPU STRESS-NG 429738.5629355.0030085.67366,691,2%
CPU Sysbench pour 112,6112,5412,650,060,5%
CPU Sysbench pour 26.366.296,440,071,1%
CPU Sysbench pour 43,503,493,520,010,4%
Sysbench mem t 12064102.942055526.352079643.4913482.640,7%
Sysbench mem t 21426786.531368090.141538170.7496508.326,8%
Sysbench mem t 42335620.592277993.802372470.7550549.232,2%

Il n'y a mĂŞme rien Ă  commenter.

La productivité en 4 flux diffère à peine de deux, mais ne se dégrade pas.

En général, chaque cœur est très productif et moitié moins puissant que le cœur de la machine virtuelle de test, qui est hors compétition, et on ne peut pas dire qu'ils sont les plus faibles.

Les disques d'étoiles du ciel ne s'accrochent pas, mais pour la plupart des tâches, ils seront nombreux.

La seule chose à noter est une excellente homogénéité. Chacune des machines ne diffère pas plus par ses performances que par l'erreur de mesure, ce qui donne une excellente prévisibilité et une facilité de planification.

Aws


Le leader du marché, son test m'a un peu surpris, car ils ont le même problème que celui trouvé chez Y. Oblak.

Malgré le fait que je travaille avec lui depuis longtemps, il ne m'a pas suffi d'une manière ou d'une autre de découvrir la différence de performances entre les modes pleine charge et partiellement, donc les résultats m'ont surpris dans une certaine mesure.

Pour les tests, le type c5.xlarge a été utilisé, car le moins cher convenait aux exigences.

Résultats pour la zone eu-central-1a:

Résultats des tests
TestTer 1Ter 2Ter 3MoyenneStdev
FIO READ IOPS1839,001976,002083,001966,00122,31
FIO WRITE IOPS789,00850,00895,00844,6753,20
CPU STRESS-NG 121422.0021722.0021736.0021626.67177,38
CPU STRESS-NG 243305,0043331.0043197,0043277.6771.06
CPU STRESS-NG 440876.0040884.0040888.0040882.676.11
CPU Sysbench pour 18.778.778.778.770,00
CPU Sysbench pour 24,404,404,404,400,00
CPU Sysbench pour 42,522,522,522,520,00
Sysbench mem t 13063495.183064238.673063452.113063728.65442,21
Sysbench mem t 21848705.161841708.241751938.221814117.2153962.11
Sysbench mem t 42413033.892249609.192299986.202320876.4383691.15


Résultats pour la zone eu-central-1b:

Résultats des tests
TestTer 1Ter 2Ter 3MoyenneStdev
FIO READ IOPS1723,001988.002101,001937.33194.03
FIO WRITE IOPS739,00855,00903,00832.3384,32
CPU STRESS-NG 121785.0021733.0021741.0021753.0028.00
CPU STRESS-NG 243370,0043323,0040351.0042348.001729,61
CPU STRESS-NG 440857.0040864.0040916.0040879.0032,23
CPU Sysbench pour 18.778.778.778.770,00
CPU Sysbench pour 24.394,404.394.390,00
CPU Sysbench pour 42,522,522,522,520,00
Sysbench mem t 13065227.233065688.953063830.233064915.47967,78
Sysbench mem t 22032840.351987864.461968489.391996398.0733013.31
Sysbench mem t 42684716.322654257.872618592.532652522.2433096.05


Résultats pour la zone eu-central-1c:

Résultats des tests
TestTer 1Ter 2Ter 3MoyenneStdev
FIO READ IOPS1761,002003,002108,001957.33177,95
FIO WRITE IOPS756,00861,00906,00841,0076,97
CPU STRESS-NG 121632.0021708.0021615,0021651.6749,52
CPU STRESS-NG 243247,0043236,0043283,0043255.3324,58
CPU STRESS-NG 439931.0039359.0040835.0040041.67744,20
CPU Sysbench pour 18.778.778.778.770,00
CPU Sysbench pour 24,404,404,404,400,00
CPU Sysbench pour 42,522,522,522,520,00
Sysbench mem t 13064343.663064434.202998820.163042532.6737856.17
Sysbench mem t 22235882.602088501.512166875.912163753.3473740.15
Sysbench mem t 42870035.792813221.502771999.662818418.9849224.29


Tableau récapitulatif des résultats:
TestMoyenneMin. MoyenneAvg maxStdevStDev%
FIO READ IOPS1953,561937.331966,0014,700,8%
FIO WRITE IOPS839.33832.33844,676.330,8%
CPU STRESS-NG 121677.1121626.6721753.0066,900,3%
CPU STRESS-NG 242960.3342348.0043277.67530,411,2%
CPU STRESS-NG 440601.1140041.6740882.67484,501,2%
CPU Sysbench pour 18.778.778.770,000,0%
CPU Sysbench pour 24,404.394,400,000,1%
CPU Sysbench pour 42,522,522,520,000,1%
Sysbench mem t 13057058.933042532.673064915.4712594.100,4%
Sysbench mem t 21991422.871814117.212163753.34174871.168,8%
Sysbench mem t 42597272.552320876.432818418.98253330.909,8%

Comme je l'ai dit plus haut, les résultats m'ont surpris.

Oui, je comprends que le problème ne se manifeste explicitement qu'avec certains types de charge (il n'est pas visible dans Sysbench), mais compte tenu des résultats d'autres plates-formes, ce n'est clairement pas un problème avec le test, à savoir la limitation des performances.

Pour la défense d'AWS, je peux dire que lorsque vous créez une machine, cela vous permet de désactiver HyperThreading, ce qui permet au moins d'éliminer le problème des baisses de performances dans certaines applications.

Sinon, les disques ne garantissent pas de telles performances, mais ils prennent en charge Burst pour lisser les charges, donc si vous avez besoin de lire / écrire relativement souvent, rapidement, mais pas très souvent (par exemple, une fois toutes les quelques minutes), alors tout ira bien.

De plus, l'homogénéité des résultats est tout simplement excellente, tout est prévisible et sans surprise.

Azure


Au départ, je ne voulais pas l'inclure dans le test, car Je n'ai jamais vraiment travaillé avec lui et je n'avais même pas de compte là-bas. Mais, après y avoir réfléchi, j'ai décidé de le tester tout de même, pour une bonne raison , pour laquelle j'ai payé .

Je veux expliquer tout de suite que la région a été choisie selon le principe du «quelque part en Europe», et que le type de machine est 100% adapté aux conditions (4 processeurs, 8 Go de mémoire).
Dans la première itération du test, c'était A4 v2, marqué comme «Usage général», avec lequel cet article a été publié. Les connaisseurs qui sont venus aux commentaires m'ont expliqué ce que j'ai fait de mal et qu'il s'avère qu'Azure a une machine plus lente, peut coûter plus cher que celle que vous ne pouvez pas découvrir plus rapidement et sans lire la documentation ou googler . Après quoi les résultats ont été mis à jour en fonction du type de F4

Résultats pour la zone France-Centre-1:

Résultats des tests
TestTer 1Ter 2Ter 3AwerageStdev
FIO READ IOPS1066,001102,001038,001068,6708/32
FIO WRITE IOPS457,00473,00445,00458,3314.05
CPU STRESS-NG 19470,0010059,0010759.0010096,00645,30
CPU STRESS-NG 220424,0020502.0020940.0020622.00278.14
CPU STRESS-NG 439039.0039294.0039141.0039158.00128,35
CPU Sysbench pour 110,3210,4210,5010,420,09
CPU Sysbench pour 25.355.355.335.350,01
CPU Sysbench pour 42,772,782,762,770,01
Sysbench mem t 12449793.142467589.352456056.192457812.899027.22
Sysbench mem t 22370286.782388077.812299377.922352580.8446925.93
Sysbench mem t 42697042.082625447.202707918.642676802.6444.806,37


Résultats pour la zone France-Centre-2:

Résultats des tests
TestTer 1Ter 2Ter 3AwerageStdev
FIO READ IOPS1037,001104,001102,001081,0028/12
FIO WRITE IOPS445,00473,00473,00463,6716.17
CPU STRESS-NG 110159.0010360,0010452.0010323.67149,84
CPU STRESS-NG 221027.0020025.0020415,0020489.00505,08
CPU STRESS-NG 439530.0040927.0040170.0040209.00699,32
CPU Sysbench pour 110,399,959,9110.080,27
CPU Sysbench pour 25,095.135.195.140,05
CPU Sysbench pour 42,692,752,662,700,04
Sysbench mem t 12568336.752450640.642567906.162528961.1867827.92
Sysbench mem t 22401273.882362027.642372950.762378750.7620255,79
Sysbench mem t 42740927.622787787.192770497.392766404.0723696.44


Résultats pour la zone France-Centre-3:

Résultats des tests
TestTer 1Ter 2Ter 3AwerageStdev
FIO READ IOPS1436,00830,001136,001134,00303,00
FIO WRITE IOPS614,00355,00487,00485,33129,51
CPU STRESS-NG 110834.0010326.0010763.0010641.00275.10
CPU STRESS-NG 221505.0021108.0021428.0021347.00210,53
CPU STRESS-NG 442194.0041540.0041427.0041720.33414.08
CPU Sysbench pour 19,879,759.799,800,06
CPU Sysbench pour 25,045,055.135,080,05
CPU Sysbench pour 42,672,652,672,660,01
Sysbench mem t 12622263.242616326.802632668.252623752.768271.93
Sysbench mem t 22495841.622438685.042556294.512496940.3958812.43
Sysbench mem t 42814306.592783117.342846909.912814777.9531898.90


Tableau récapitulatif des résultats:
TestMoyenneMin. MoyenneAvg maxStdevStDev%
FIO READ IOPS1094,561068,671134,0034,713,2%
FIO WRITE IOPS469.11458,33485,3314h303,0%
CPU STRESS-NG 110353.5610096,0010641.00273,732,6%
CPU STRESS-NG 220819.3320489.0021347.00461,792,2%
CPU STRESS-NG 440362.4439158.0041720.331288.043,2%
CPU Sysbench pour 110.109,8010,420,313,0%
CPU Sysbench pour 25.195,085.350,142,7%
CPU Sysbench pour 42,712,662,770,052,0%
Sysbench mem t 12536842.282457812.892623752.7683250.193,3%
Sysbench mem t 22409424.002352580.842496940.3976912,653,2%
Sysbench mem t 42752661.552676802.642814777.9570006.712,5%

Bonne performance, l'une des meilleures parmi les plateformes présentées. Certes, le prix gâche tout.

Résumé


Performances


.

, .. , , .


,

CPU:



, - - AWS. Google Cloud.

Selectel. , ( , ).

:



AWS , - — Azure . -.

:



— Selectel. .

— AWS Burst- .
GCE Azure, . MSC, .


— .

, — .

stress-ng.
1 ( ):
ProviderYandex.CloudMCSSelectelGCEAwsAzure
Price (cur)3799.1236084050.624103.08147.57147.46
Price (rub)3799.1236084050.6246747.61689659.93229652.7316
Alt price (cur)3799.1236083,454.9435.656.079652.7316
Alt price (rub)3799.1236083,454.942330.3763670.34229652.7316

.

, , , — , .

, , .

, - , AWS, Azure (, (-), ) GCE , 65.46 .

, Azure , 16 , ( ), , , Azure .

, , stress-ng , :


—

, , - :


—

, , , Selectel, .

, .

, stress-ng , :


—

, :



.

, AWS GCE .

Selectel, , «» ( , , AWS Spot Google Preemptible ).

, , .

Au lieu de conclusions


, — .

, , - «».
**UPDATE** Selectel, ..
**UPDATE2** Azure , ,

Source: https://habr.com/ru/post/fr439690/


All Articles