Vergleich der Leistung virtueller Maschinen von 6 Cloud-Plattformen: Selectel, MCS, I. Cloud, Google Cloud, AWS und Azure

Gerade bin ich auf zwei Artikel aus einem Unternehmensblog gestoßen, die sich auf Clouds beziehen - einen über Kubernetes, und der zweite war ein Versuch, die Leistung mit einer Technik zu messen, die mir zweifelhaft erschien (nicht umsonst ein Spoiler).

Ich habe auch etwas über K8 zu sagen, aber lassen Sie uns über die Leistung sprechen.

Das Misstrauen gegenüber den Ergebnissen wurde durch viele Faktoren verursacht, aber die wichtigsten waren für mich die folgenden: Es gab keine Parameter für die Durchführung der Tests, die Anzahl der Iterationen wurde nicht angekündigt, die Auswahl der Maschinen wurde nicht angekündigt und es gab auch keine detaillierte Konfiguration. Es ist im Allgemeinen zweifelhaft.
Im Allgemeinen verwende ich hauptsächlich Google Cloud und AWS (insgesamt habe ich über ein Dutzend Jahre Erfahrung damit) und arbeite nicht besonders mit inländischen Cloud-Anbietern zusammen, aber zufällig habe ich aktive Konten in Selectel, MCS, I. Cloud und nach diesem Test auch in Azure.

Glücklicherweise sind alle diese Plattformen öffentlich und was auch immer ich versuche, jeder kann gehen, wiederholen und prüfen, ob er es wünscht.

Das Ergebnis all dessen war der Gedanke - warum nicht ein paar hundert Rubel das ganze Wochenende ausgeben und wirklich nicht alle sechs Plattformen messen und herausfinden, welche die beste Leistung in Bezug auf Kosten und in absoluten Zahlen mit denselben Konfigurationen bietet, und gleichzeitig globale Lieferanten mit vergleichen Russisch.
Und auch, wie sich herausstellte, um einige der „Merkmale“ bei der Zuweisung von Ressourcen zu klären und uns und andere daran zu erinnern, dass es nicht immer und nicht auf allen Plattformen für das gleiche Geld möglich ist, eine vorhersehbare Leistung zu erzielen.

Die Ergebnisse waren nicht phänomenal, aber meiner Meinung nach äußerst merkwürdig.

Für Interessierte bitte ich um Katze.

Methodik


Virtuelle Maschinen


Jeder Cloud-Anbieter wird nacheinander in verschiedenen Zugriffszonen (wenn zwei Zonen vorhanden sind, dann 1 Maschine in der ersten Zone und 2 in der zweiten), drei virtuellen Maschinen mit 4 CPUs, 8 GB RAM und einer 50-GB-Systemfestplatte ausgeführt.

Der Prozessor- / Instanztyp ist der neueste verfügbare, wenn Sie die Wahl haben.

VM-Typ - gemeinsam genutzt mit vollständiger Kernelzuweisung.

Festplattentyp - Netzwerk-SSD mit der Möglichkeit, eine erneute Bereitstellung auf einer anderen VM durchzuführen.

Optionen für die garantierte Zuweisung von IOPS oder dafür optimierten Maschinen wurden nicht verwendet, wenn dies nicht in den Standardnutzungsbedingungen vorgesehen ist und es unmöglich ist, dies abzulehnen.

Das Standarddateisystem ist ext4.

Es wurden keine manuellen Systemeinstellungen vorgenommen.

An jeder Maschine wurde eine Reihe von Tests gestartet, wobei die Gesamtwerte für jede Maschine gemittelt wurden.

Die Gesamtleistung der Plattform wird durch den arithmetischen Durchschnitt der Durchschnittswerte der Tests für jede der virtuellen Maschinen ausgedrückt. Die Standardabweichung ist jedoch auch in den Tabellen für Interessenten angegeben.

Betriebssystem - Ubuntu 16.04 ist das letzte verfügbare Patch-Level.

Kostenberechnung


Die Kostenberechnung wurde ohne Berücksichtigung von Bonusabgrenzungen des Anbieters und ohne Berücksichtigung der Verkehrskosten aus der Berechnung des Betriebs der virtuellen Maschine für einen vollen Kalendermonat ohne Unterbrechung durchgeführt.

Auf einigen Plattformen können Sie außerdem die Ressourcenkosten durch bestimmte Einschränkungen (die Sie sehr geschickt überleben können) erheblich senken.

Für AWS sind dies Spot-Instanzen, für GCE sind dies präemptible Instanzen. Mit einer geeigneten Anwendungsarchitektur können sie erfolgreich verwendet werden, ohne sie zu beeinträchtigen. Mit dem Vorteil einer Brieftasche wurde sie jedoch sowohl von mir persönlich als auch von Dutzenden von Unternehmen getestet, die beide verwenden.
Der Festplattentyp in Selectel kann derselben Kategorie zugeordnet werden. Trotz der Tatsache, dass die Festplatten vom Typ „Quick“ an den Hauptmessungen teilgenommen haben, gibt es immer noch einen deutlich günstigeren „Universal“, der nicht brillant in der Geschwindigkeit ist, aber für eine Vielzahl von Aufgaben geeignet ist. Optionen mit ihrer Verwendung wurden bei den endgültigen Berechnungen ebenfalls berücksichtigt.

Tests


Um die Tests auszuführen, wurde dieses Skript geschrieben, von dem aus alle Startparameter sichtbar sind:

Testskript
#!/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 


Für alle Tests außer der Sysbench-CPU ist mehr besser.

Die Ergebnisse aller Starts wurden zur weiteren Berechnung in Excel-Tabellen gesammelt.
Nun, ich habe es irgendwie getan - ich habe es dir gesagt, jetzt muss ich dir sagen, was passiert ist.

Testen


Eine Beispielmaschine ist kein Test.


Wolken werden üblicherweise mit herkömmlichen Eisenservern verglichen. Ich sehe darin nicht viel Sinn, da die Cloud nicht nur und nicht so sehr direkt Rechenleistung ist, sondern vor allem das Ökosystem, aber ich denke dennoch, dass viele noch an einem solchen Vergleich interessiert sein werden. Nun, im Allgemeinen muss etwas verglichen werden. Mit etwas Nahem, Berühmtem und Verständlichem.
Ich hatte die Eisenmaschine nicht zur Hand, aber es gibt eine sehr neue Dell-Workstation, es ist auch ein Heimserver mit einem bekannten Prozessor (E5-4650L bei 2,60 GHz), der angemessenen Menge nicht des schnellsten DDR3-EEC-Speichers (um ehrlich zu sein - der langsamste von denen, die im Allgemeinen kompatibel waren) und die SmartBuy-SSD, die vor etwa 4 Jahren gekauft und kürzlich auf diese Baugruppe umgestellt wurde.

Da dies alles unter FreeBSD 11.2 funktioniert, wurde mit bhyve eine geeignete Virtualochka erstellt und dort ein Test durchgeführt.

Protokoll starten
 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) 


Wenn Sie die Ergebnisse in eine tabellarische Ansicht übersetzen, erhalten Sie Folgendes:
TestTer 1Ter 2Ter 3DurchschnittStdev
FIO LESEN IOPS3715.003875.003694.003761,3399,00
FIO WRITE IOPS1591.001659.001583.001611.0041,76
STRESS-NG 1 CPU12227.0012399.0012134.0012253.33134,45
STRESS-NG 2 CPU23812.0023558.0021254.0022874,671409,27
STRESS-NG 4 CPU39495.0039876.0042370.0040580.331561.56
Sysbench CPU für 111.0611.0511.0511.050,01
Sysbench CPU für 25.625.575.545.570,04
Sysbench CPU für 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

Nun, es gibt Referenzdaten, jetzt direkt die Ergebnisse von Testanbietern.

Außerdem werde ich nicht die vollständigen Protokolle zitieren, um den Artikel nicht aufzublasen, aber ich habe sie gespeichert, wenn Sie möchten, fragen Sie nach einem Link, ich werde ihn teilen, obwohl die Daten von ihnen in die Tabelle übertragen wurden.

Yandex Cloud


Ergebnisse für die Zone ru-central1-a:

Ergebnistabelle
TestTer 1Ter 2Ter 3DurchschnittStdev
FIO LESEN IOPS554,00543,00545,00547,335.86
FIO WRITE IOPS237,00232,00233,00234,002,65
STRESS-NG 1 CPU10236.0010045.0010161.0010147,3396,23
STRESS-NG 2 CPU19756.0019479.0020291.0019842.00412,77
STRESS-NG 4 CPU18743.0017906.0018192.0018280.33425,43
Sysbench CPU für 111.9411,9511.9811.960,02
Sysbench CPU für 27.197.236.166.860,61
Sysbench CPU für 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


Ergebnisse für die Zone ru-central1-b:

Ergebnistabelle
TestTer 1Ter 2Ter 3DurchschnittStdev
FIO LESEN IOPS543,00537,00523,00534,3310.26
FIO WRITE IOPS232,00230,00224,00228,674.16
STRESS-NG 1 CPU10634.0010848.0011870.0011117.33660,55
STRESS-NG 2 CPU22109.0020861.0021020.0021330.00679,30
STRESS-NG 4 CPU18964.0019449.0018992.0019135.00272,29
Sysbench CPU für 111.30 Uhr11.3511.3411.330,03
Sysbench CPU für 25.875.885.895.880,01
Sysbench CPU für 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


Ergebnisse für die Zone ru-central1-c:

Ergebnistabelle
TestTer 1Ter 2Ter 3DurchschnittStdev
FIO LESEN IOPS541,00551,00558,00550,008.54
FIO WRITE IOPS232,00236,00239.00235,673.51
STRESS-NG 1 CPU10424.0010192.0010325.0010313,67116,41
STRESS-NG 2 CPU19637.0020330.0019585.0019850.67415,93
STRESS-NG 4 CPU28884.0028477.0028750.0028703,67207,42
Sysbench CPU für 111.6711.6411.6811.670,02
Sysbench CPU für 26.026.057.066.380,59
Sysbench CPU für 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


Zusammenfassende Ergebnisse:
TestDurchschnittDurchschn. MinDurchschn. MaxStdevStDev%
FIO LESEN IOPS543,89534,33550,008.381,5%
FIO WRITE IOPS232,78228,67235,673.661,6%
STRESS-NG 1 CPU10526.1110147,3311117.33518,724,9%
STRESS-NG 2 CPU20340,8919842.0021330.00856,614,2%
STRESS-NG 4 CPU22039,6718280.3328703,675786,9926,3%
Sysbench CPU für 111.6511.3311.960,312,7%
Sysbench CPU für 26.375.886.860,497,7%
Sysbench CPU für 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%

Ich möchte einer bemerkenswerten Tatsache besondere Aufmerksamkeit schenken.

Bei einer vollen Auslastung aller Kerne virtueller Maschinen in den Zonen A und B ist die Gesamtleistung NIEDRIGER als bei einer Auslastung von nur zwei von vier Kernen.

Außerdem habe ich in einer der Zonen weitere Autos genommen und einen Test für sie durchgeführt - das Problem ist nicht verschwunden.

Ich gehe davon aus, dass dies ein technisches Problem ist und mit den Hardwarefunktionen der für Hypervisoren verwendeten Maschinen zusammenhängt und diese bei der Zuweisung von Ressourcen berücksichtigt (ich erinnere mich an diesen Fall aus der Praxis). Nun, oder mit etwas anderem kann ich nicht hineinschauen, aber ich möchte wirklich nicht raten.

Ich hoffe, dass die Kameraden von Y. Oblak diesen Artikel lesen und etwas damit anfangen werden, und wenn sie sehr viel Glück haben, werden sie Ihnen genau sagen, was, sonst stellt sich heraus, dass es etwas anstößig und manchmal unangenehm ist (viele Anwendungen konzentrieren sich auf die Anzahl der Kerne, um die Anzahl der Threads zu berechnen). .

Mail.RU Cloud (MCS)


Mail.ru hat nur zwei Zugriffszonen, daher wurden zwei Tests auf verschiedenen Computern in derselben Zone durchgeführt.

Ergebnisse für die Moskau-Ost-Zone (erste VM):

Tabelle mit den Ergebnissen
TestTer 1Ter 2Ter 3DurchschnittStdev
FIO LESEN IOPS487,00538,00534,00519,6728.36
FIO WRITE IOPS209,00231,00229,00223,0012.17
STRESS-NG 1 CPU7359.006567,007022.006982,67397,46
STRESS-NG 2 CPU14144.0014916.0013137.0014065,67892.08
STRESS-NG 4 CPU21381.0021199.0021032.0021204.00174,55
Sysbench CPU für 115.5416.2014.9815.570,61
Sysbench CPU für 27.307.707.537.510,20
Sysbench CPU für 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


Ergebnisse für die Moskau-Ost-Zone (zweite VM):

Testergebnisse
TestTer 1Ter 2Ter 3DurchschnittStdev
FIO LESEN IOPS475,00509,00472,00485,3320.55
FIO WRITE IOPS205,00218,00204,00209,007.81
STRESS-NG 1 CPU6953.007030.007127.007036,6787,19
STRESS-NG 2 CPU14623.0013945.0013523.0014030.33554,94
STRESS-NG 4 CPU27022.0027184.0027670.0027292.00337,23
Sysbench CPU für 114.8813.4414.4514.260,74
Sysbench CPU für 26.897.136.696,900,22
Sysbench CPU für 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


Ergebnisse für die Zone Moskau-Nord:

Testergebnisse
TestTer 1Ter 2Ter 3DurchschnittStdev
FIO LESEN IOPS510,00647,00613,00590,0071,34
FIO WRITE IOPS218,00277,00262,00252,3330,66
STRESS-NG 1 CPU9657.009742,009867,009755.33105,63
STRESS-NG 2 CPU19251.0020069.0019677.0019665.67409.12
STRESS-NG 4 CPU39020.0038665.0038461.0038715.33282,88
Sysbench CPU für 112.4512.5312.6612.550,11
Sysbench CPU für 26.256.206.226.220,02
Sysbench CPU für 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


Zusammenfassende Ergebnisse:

TestDurchschnittDurchschn. MinDurchschn. MaxStdevStDev%
FIO LESEN IOPS531,67485,33590,0053,3610,0%
FIO WRITE IOPS228.11209,00252,3322.119,7%
STRESS-NG 1 CPU7924,896982,679755.331585,4420,0%
STRESS-NG 2 CPU15920,5614030.3319665.673243,4120,4%
STRESS-NG 4 CPU29070.4421204.0038715.338890.1030,6%
Sysbench CPU für 114.1312.5515.571,5210,7%
Sysbench CPU für 26.886.227.510,649,3%
Sysbench CPU für 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%

Interessant zu bemerken, dass es bei Verwendung von vier Threads keine Probleme mit Leistungseinbußen gibt, und es scheint, dass ehrliche (wenn auch eher schwache) Kernel ausgegeben werden.

In der Nordzone werden deutlich leistungsstärkere Prozessoren eingesetzt als in der Wostok-Zone. Der Leistungsunterschied bei Volllast beträgt das Zweifache. Für das gleiche Geld. Ziehen Sie Ihre eigenen Schlussfolgerungen.

Selectel


Die Ergebnisse seiner Tests waren sehr interessant. In absoluten Zahlen bietet es die leistungsstärksten 4-Core-Maschinen aller getesteten Anbieter.

Ergebnisse für die Zone "Moskau - Berzarin-1":

Testergebnisse
TestTer 1Ter 2Ter 3DurchschnittStdev
FIO LESEN IOPS2319.002294.002312.002308,3312.90
FIO WRITE IOPS998,00986,00995,00993,006.24
STRESS-NG 1 CPU11320.0011038.0010936,0011098.00198,91
STRESS-NG 2 CPU23164.0022093.0022558.0022605.00537.04
STRESS-NG 4 CPU43879.0044118.0044086.0044027.67129,74
Sysbench CPU für 112.0111.9611.9711.980,02
Sysbench CPU für 26.015,995,996.000,02
Sysbench CPU für 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


Ergebnisse für die Zone "Moskau - Berzarin-2":

Tabelle mit den Ergebnissen
TestTer 1Ter 2Ter 3DurchschnittStdev
FIO LESEN IOPS1735.001729.001724.001729.335.51
FIO WRITE IOPS745,00742,00740,00742,332.52
STRESS-NG 1 CPU18231.0018462.0018518.0018403,67152.13
STRESS-NG 2 CPU36965.0036495.0037006.0036822.00283,93
STRESS-NG 4 CPU74272.0074428.0074218.0074306.00109.05
Sysbench CPU für 111.2211.1711.1511.180,03
Sysbench CPU für 25,605,605,605,600,00
Sysbench CPU für 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


Ergebnisse für die Zone "St. Petersburg - Dubrovka-1":

Tabelle mit den Ergebnissen
TestTer 1Ter 2Ter 3DurchschnittStdev
FIO LESEN IOPS2550.002618.002666.002611.3358,29
FIO WRITE IOPS1096,001126.001147.001123.0025.63
STRESS-NG 1 CPU10801.0010512.0011175.0010829,33332,41
STRESS-NG 2 CPU21418.0021642.0023179.0022079,67958,62
STRESS-NG 4 CPU44183.0044557.0043012.0043917,33806.03
Sysbench CPU für 111.9711.9911.9911.990,01
Sysbench CPU für 25,995,996.005,990,01
Sysbench CPU für 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


Übersichtstabelle mit den Ergebnissen:
TestDurchschnittDurchschn. MinDurchschn. MaxStdevStDev%
FIO LESEN IOPS2216,331729.332611.33448,1420,2%
FIO WRITE IOPS952,78742,331123.00193,4920,3%
STRESS-NG 1 CPU13443.6710829,3318403,674297,5932,0%
STRESS-NG 2 CPU27168,8922079,6736822.008363,9630,8%
STRESS-NG 4 CPU54083.6743917,3374306.0017513.1432,4%
Sysbench CPU für 111.7211.1811.990,464,0%
Sysbench CPU für 25.865,606.000,233,9%
Sysbench CPU für 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%

Wie gesagt, dieser Anbieter bietet von allen getesteten die produktivsten Maschinen basierend auf 4 Threads. Aber hier gibt es eine Besonderheit - wieder erhalten wir für das gleiche Geld eine Leistung, die fast zweimal unterschiedlich ist - vergleichen Sie die Ergebnisse von Berezin-2 mit den anderen.

Außerdem möchte ich sehr schnelle Laufwerke zu einem vernünftigen Preis erwähnen, die besten, die von den drei getesteten inländischen Anbietern angeboten werden. Gleichzeitig hat eine Maschine mit dem schnellsten Prozessor das langsamste von drei Laufwerken.

Es stellt sich als eine Art Lotterie heraus, obwohl selbst wenn Sie kein Glück haben, alles sehr, sehr anständig sein wird.

Google Cloud


Die GCE-Testergebnisse brachten keine besonderen Überraschungen.

Alles ist ziemlich vorhersehbar, homogen und stimmt im Allgemeinen mit den Behauptungen überein.

Ergebnisse für die Zone Europa-West1-b:

Testergebnisse
TestTer 1Ter 2Ter 3DurchschnittStdev
FIO LESEN IOPS924,00910.00888,00907,3318.15
FIO WRITE IOPS396,00391,00380,00389,008.19
STRESS-NG 1 CPU14237.0014137.0014094.0014156.0073,37
STRESS-NG 2 CPU28576.0028419.0028544.0028513.0082,96
STRESS-NG 4 CPU29996.0029880.0029449.0029775.00288,22
Sysbench CPU für 112.6312.6612.6712.650,02
Sysbench CPU für 26.526.416.386.440,08
Sysbench CPU für 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


Ergebnisse für die Zone Europa-West-1c:

Testergebnisse
FIO LESEN IOPS946,00995,00984,00975,0025.71
FIO WRITE IOPS406,00428,00422,00418,6711.37
STRESS-NG 1 CPU14256.0014250.0014423.0014309.6798,20
STRESS-NG 2 CPU28875,0029057.0029256.0029062,67190,56
STRESS-NG 4 CPU30317.0030462.0029478.0030085,67531,23
Sysbench CPU für 112.5212.4912.6112.540,06
Sysbench CPU für 26.286.306.316.290,02
Sysbench CPU für 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


Ergebnisse für die Zone Europa-West1-d:

Testergebnisse
TestTer 1Ter 2Ter 3DurchschnittStdev
FIO LESEN IOPS885.00910.00943,00912,6729.09
FIO WRITE IOPS379,00390,00405,00391,3313.05
STRESS-NG 1 CPU14254.0014230.0014008.0014164.00135,63
STRESS-NG 2 CPU28262.0028321.0028473.0028352.00108,86
STRESS-NG 4 CPU29615.0029312.0029138.0029355.00241,39
Sysbench CPU für 112.6112.6512.6612.640,03
Sysbench CPU für 26.376.356.356.360,01
Sysbench CPU für 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


Übersichtstabelle mit den Ergebnissen:
TestDurchschnittDurchschn. MinDurchschn. MaxStdevStDev%
FIO LESEN IOPS931,67907,33975,0037,624,0%
FIO WRITE IOPS399,67389,00418,6716.504,1%
STRESS-NG 1 CPU14209,8914156.0014309.6786,500,6%
STRESS-NG 2 CPU28642.5628352.0029062,67372,631,3%
STRESS-NG 4 CPU29738,5629355.0030085,67366,691,2%
Sysbench CPU für 112.6112.5412.650,060,5%
Sysbench CPU für 26.366.296.440,071,1%
Sysbench CPU für 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%

Es gibt sogar nichts zu kommentieren.

Die Produktivität in 4 Flüssen unterscheidet sich kaum von zwei, verschlechtert sich jedoch nicht.

Im Allgemeinen ist jeder Kern sehr produktiv und halb so leistungsfähig wie der Kern der virtuellen Testmaschine, der nicht im Wettbewerb steht, und sie können nicht als die schwächsten bezeichnet werden.

Sternscheiben vom Himmel greifen nicht, aber für die meisten Aufgaben gibt es viele davon.

Bemerkenswert ist nur die hervorragende Homogenität. Jede der Maschinen unterscheidet sich in der Leistung nicht mehr als im Messfehler, was eine hervorragende Vorhersagbarkeit und einfache Planung ermöglicht.

Aws


Der Marktführer, sein Test hat mich etwas überrascht, da sie das gleiche Problem haben, das in Y. Oblak gefunden wurde.

Trotz der Tatsache, dass ich schon lange mit ihm zusammenarbeite, war es irgendwie nicht genug für mich, den Leistungsunterschied zwischen den Volllastmodi und teilweise herauszufinden, so dass die Ergebnisse mich in gewissem Maße überraschten.

Zum Testen wurde der Typ c5.xlarge verwendet, der für die Anforderungen am günstigsten ist.

Ergebnisse für die Zone eu-central-1a:

Testergebnisse
TestTer 1Ter 2Ter 3DurchschnittStdev
FIO LESEN IOPS1839.001976.002083,001966.00122,31
FIO WRITE IOPS789,00850,00895,00844,6753,20
STRESS-NG 1 CPU21422.0021722.0021736,0021626.67177,38
STRESS-NG 2 CPU43305.0043331.0043197.0043277,6771.06
STRESS-NG 4 CPU40876.0040884.0040888.0040882,676.11
Sysbench CPU für 18.778.778.778.770,00
Sysbench CPU für 24.404.404.404.400,00
Sysbench CPU für 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


Ergebnisse für die Zone eu-central-1b:

Testergebnisse
TestTer 1Ter 2Ter 3DurchschnittStdev
FIO LESEN IOPS1723.001988.002101.001937.33194.03
FIO WRITE IOPS739,00855,00903,00832,3384,32
STRESS-NG 1 CPU21785.0021733.0021741,0021753.0028.00
STRESS-NG 2 CPU43370.0043323.0040351.0042348.001729.61
STRESS-NG 4 CPU40857.0040864.0040916.0040879.0032.23
Sysbench CPU für 18.778.778.778.770,00
Sysbench CPU für 24.394.404.394.390,00
Sysbench CPU für 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


Ergebnisse für die Zone eu-central-1c:

Testergebnisse
TestTer 1Ter 2Ter 3DurchschnittStdev
FIO LESEN IOPS1761.002003.002108.001957.33177,95
FIO WRITE IOPS756,00861,00906,00841,0076,97
STRESS-NG 1 CPU21632,0021708.0021615.0021651.6749,52
STRESS-NG 2 CPU43247.0043236.0043283.0043255.3324.58
STRESS-NG 4 CPU39931,0039359.0040835,0040041,67744,20
Sysbench CPU für 18.778.778.778.770,00
Sysbench CPU für 24.404.404.404.400,00
Sysbench CPU für 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


Zusammenfassende Ergebnistabelle:
TestDurchschnittDurchschn. MinDurchschn. MaxStdevStDev%
FIO LESEN IOPS1953.561937.331966.0014.700,8%
FIO WRITE IOPS839,33832,33844,676.330,8%
STRESS-NG 1 CPU21677.1121626.6721753.0066,900,3%
STRESS-NG 2 CPU42960.3342348.0043277,67530,411,2%
STRESS-NG 4 CPU40601.1140041,6740882,67484,501,2%
Sysbench CPU für 18.778.778.770,000,0%
Sysbench CPU für 24.404.394.400,000,1%
Sysbench CPU für 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%

Wie ich oben sagte, haben mich die Ergebnisse überrascht.

Ja, ich verstehe, dass sich das Problem explizit nur bei einigen Lasttypen manifestiert (es ist in Sysbench nicht sichtbar), aber angesichts der Ergebnisse anderer Plattformen ist dies eindeutig kein Problem mit dem Test, nämlich der Leistungsbeschränkung.

Zur Verteidigung von AWS kann ich sagen, dass Sie beim Erstellen eines Computers HyperThreading deaktivieren können, was zumindest dazu beiträgt, das Problem mit Leistungseinbußen in einigen Anwendungen zu beseitigen.

Andernfalls garantieren Festplatten keine solche Leistung, unterstützen jedoch Burst zum Glätten von Lasten. Wenn Sie also relativ viel, schnell, aber nicht sehr oft (z. B. alle paar Minuten) lesen / schreiben müssen, ist alles in Ordnung.

Auch die Homogenität der Ergebnisse ist einfach hervorragend, alles ist vorhersehbar und ohne Überraschungen.

Azure


Anfangs wollte ich es nicht in den Test aufnehmen, weil Ich habe nie wirklich mit ihm gearbeitet und hatte dort nicht einmal einen Account. Aber nachdem ich darüber nachgedacht hatte, beschloss ich, es aus gutem Grund trotzdem zu testen , wofür ich bezahlt hatte .

Ich möchte gleich erklären, dass die Region nach dem Prinzip „irgendwo in Europa“ ausgewählt wurde und der Maschinentyp zu 100% für die Bedingungen geeignet ist (4 Prozessoren, 8 GB Speicher).
In der ersten Iteration des Tests war es A4 v2, gekennzeichnet als "Allzweck", mit dem dieser Artikel veröffentlicht wurde. Die Kenner, die zu den Kommentaren kamen, erklärten mir, was ich falsch gemacht habe und dass sich herausstellt, dass Azure über einen langsameren Computer verfügt, der mehr kosten kann als der, den Sie nicht schneller herausfinden können, ohne Dokumentation zu lesen oder zu googeln . Danach wurden die Ergebnisse basierend auf dem F4-Typ aktualisiert

Ergebnisse für die Zone Frankreich-Zentral-1:

Testergebnisse
TestTer 1Ter 2Ter 3AwerageStdev
FIO LESEN IOPS1066.001102.001038,001068,6708/32
FIO WRITE IOPS457,00473,00445,00458,3314.05
STRESS-NG 1 CPU9470.0010059.0010759.0010096.00645,30
STRESS-NG 2 CPU20424.0020502.0020940.0020622.00278,14
STRESS-NG 4 CPU39039.0039294.0039141.0039158.00128,35
Sysbench CPU für 110.3210.4210.5010.420,09
Sysbench CPU für 25.355.355.335.350,01
Sysbench CPU für 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


Ergebnisse für die Zone France-Central-2:

Testergebnisse
TestTer 1Ter 2Ter 3AwerageStdev
FIO LESEN IOPS1037,001104.001102.001081.0028.12
FIO WRITE IOPS445,00473,00473,00463,6716.17
STRESS-NG 1 CPU10159.0010360.0010452.0010323.67149,84
STRESS-NG 2 CPU21027,0020025.0020415.0020489.00505.08
STRESS-NG 4 CPU39530.0040927.0040170.0040209.00699,32
Sysbench CPU für 110.399,959.9110.080,27
Sysbench CPU für 25.095.135.195.140,05
Sysbench CPU für 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


Ergebnisse für die Zone France-Central-3:

Testergebnisse
TestTer 1Ter 2Ter 3AwerageStdev
FIO LESEN IOPS1436,00830.001136.001134.00303,00
FIO WRITE IOPS614,00355,00487,00485,33129,51
STRESS-NG 1 CPU10834.0010326.0010763.0010641.00275.10
STRESS-NG 2 CPU21505.0021108.0021428.0021347.00210,53
STRESS-NG 4 CPU42194.0041540.0041427.0041720.33414.08
Sysbench CPU für 19.879,759.799,800,06
Sysbench CPU für 25.045.055.135.080,05
Sysbench CPU für 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


Zusammenfassende Ergebnistabelle:
TestDurchschnittDurchschn. MinDurchschn. MaxStdevStDev%
FIO LESEN IOPS1094,561068,671134.0034.713,2%
FIO WRITE IOPS469.11458,33485,3314.30 Uhr3,0%
STRESS-NG 1 CPU10353,5610096.0010641.00273,732,6%
STRESS-NG 2 CPU20819.3320489.0021347.00461,792,2%
STRESS-NG 4 CPU40362.4439158.0041720.331288.043,2%
Sysbench CPU für 110.109,8010.420,313,0%
Sysbench CPU für 25.195.085.350,142,7%
Sysbench CPU für 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%

Gute Leistung, eine der besten unter den vorgestellten Plattformen. Der Preis verdirbt zwar alles.

Zusammenfassung


Leistung


Beginnen wir mit einer Pivot-Ergebnistabelle.

Ich füge es mit einem Bild ein, weil Ich möchte Farben verwenden, aber die Daten stammen aus den oben dargestellten Tabellen.


Je besser, desto besser

Schauen wir uns die CPU-Leistung genauer an:



Insgesamt liegt AWS bei der durchschnittlichen gemessenen Leistung für Einzel- und Doppelkernlasten an der Spitze. An zweiter Stelle steht Google Cloud.

Von den russischen Anbietern zeigte sich Selectel am besten.Neben dem dritten Platz in Bezug auf die Teillast hat er beim Laden aller Kerne eine einzigartige erste, selbst unter Berücksichtigung der ungleichmäßigen Ergebnisse zwischen den Zonen (was unangenehm ist, aber in diesem Fall keine Auswirkungen hat).

Jetzt der Speicher: AWS für den Single-Thread-Modus enthält die Speicherfläche für die



Geschwindigkeit der Arbeit mit dem Speicher , für Azure und I für den Dual-Stream-Modus die Cloud für den Vier-Zeilen-Modus. Festplatten: In Bezug auf die Festplattengeschwindigkeit haben wir einen klaren Gewinner - Selectel. Keiner der Vergleichsteilnehmer bietet so etwas für vergleichbares Geld an. Auf dem zweiten Platz liegt AWS dank des erlaubten Bursts und der allgemein anständigen Geschwindigkeit. Hinter ihm stehen GCE und Azure, und Y. Cloud und MSC schließen die Liste, die ungefähr die gleichen Leistungslösungen bieten.










Kosten im Verhältnis zur Leistung


Lassen Sie uns nun über einen weiteren interessanten Faktor sprechen - die Kosten.

Dieser Vergleich deckt in keiner Weise die Gesamtkosten von Lösungen auf verschiedenen Plattformen ab. Sein Ziel ist einfach: Die Kosten einer Leistungseinheit für verschiedene Anbieter zu vergleichen.

Die Berechnung basiert auf dem Stresstest.
Abrechnungspreise für 1 Nutzungsmonat jeder Instanz (ohne Mehrwertsteuer):
AnbieterYandex.CloudMcsSelectelGceAwsAzure
Preis (cur)3799.1236084050.624103.08147,57147,46
Preis (reiben)3799.1236084050.6246747.61689659.93229652.7316
Alt Preis (cur)3799.1236083,454,9435.656.079652.7316
Alt Preis (reiben)3799.1236083,454,942330.3763670.34229652.7316

Die Kostentabelle bedarf einiger Erläuterungen.

Für diejenigen Anbieter, die die Möglichkeit haben, die am Anfang des Artikels beschriebenen Ressourcenkosten zu senken, gibt es zwei Kosten - die Haupt- und die Alternativkosten, die unter Berücksichtigung dieser Funktionen berechnet werden.

Da dies kein Rabatt ist und an unterschiedliche Nutzungsszenarien gebunden ist, habe ich eine gute Idee, die Kosten zu berechnen und zu berücksichtigen.

Aufgrund der Währungsunterschiede, der Kosten für AWS, Azure (ja, ich weiß, dass er (irgendwie) in Rubel anzeigen kann, ihr Rechner zeigte mir die Werte in Dollar) und GCE wird auf das Rubeläquivalent reduziert, was dem Kurs von 65,46 Rubel pro entspricht US-Dollar.

Außerdem konnte ich für Azure die Kosten für die Festplatte nicht zuordnen. Die Standardfestplatte der Instanz beträgt 16 GB. Wie viel die Festplatte tatsächlich vom Taschenrechner kostet, ist nicht sehr klar (es wird auch die Anzahl der berücksichtigten Anforderungen berücksichtigt), sodass der Preis nur für die Instanz selbst angegeben wird , obwohl die Summe Die Situation ändert sich immer noch nicht. Azure bleibt die teuerste.

Die Kosten für jede Lösung, die im Stresstest auf Rubel pro Papagei reduziert wurden, für die minimale Menge an Ressourcen, die im Test erhalten wurden:


Weniger ist besser

Wenn Sie anhand der durchschnittlichen Testergebnisse berechnen, ändert sich das Bild nicht grundlegend, aber es bleibt noch etwas übrig Veränderung:


weniger ist besser

Es stellt sich heraus, dass Selectel in allen Kategorien, wenn Sie ohne Mehrwertsteuer zählen, außerdem in der Kategorie Schwerlast mit fast zwei Margen gewinnt.

Lassen Sie uns nun sehen, was passiert, wenn Sie die Kosten unter Berücksichtigung möglicher Einsparungen je nach Nutzungsszenario erneut lesen.

Die alternativen Kosten werden unter Berücksichtigung der Einsparungen aufgrund des Anwendungsfalls im Stresstest auf Rubel pro Papagei reduziert, um die minimale Menge an Ressourcen zu erhalten, die im Test erhalten wurden:


Weniger ist besser

Es ist dasselbe, aber auf die durchschnittliche Menge an Ressourcen:



Hier ändert sich das Bild.

In allen Szenarien, mit Ausnahme einer hohen, ständig vollen Last mit einer angemessenen Marge, erzielen AWS und GCE fast die gleichen Kosten pro Ressourceneinheit.

Im Falle einer hohen Last werden sie von Selectel konkurriert, das Ressourcen für fast das gleiche Geld anbietet, jedoch mit weniger „Zugeständnissen“ (seine Knoten sind jedoch konstant und werden im Gegensatz zu AWS Spot- und Google Preemptible-Instanzen zu keinem Zeitpunkt ausgeschaltet).

Wenn Sie sich also sorgfältig und kompetent der Architektur nähern, können Sie an einem scheinbar leeren Ort viel Geld sparen.

Anstelle von Schlussfolgerungen


Der Test erwies sich als lang, aber für mich - interessant.

Für mich selbst habe ich einige Schlussfolgerungen zu den Ergebnissen gezogen. Ich hoffe, es wird Ihnen helfen, das Problem der Leistung von Cloud-Plattformen ein wenig anders zu betrachten und wahrscheinlich die Qual der Wahl ein wenig zu erleichtern sowie bei der Diagnose von Leistungsproblemen auf einigen Plattformen aufgrund der identifizierten "Funktionen" zu helfen.
** UPDATE ** Aktualisierte Selectel-Leads und -Preise, as Sie hätten die Mehrwertsteuer fälschlicherweise berücksichtigt.
** UPDATE2 ** Aktualisierte Azure-Ergebnisse für einen neuen Knotentyp, aktualisierte Schlussfolgerungen, aber im Grunde hat sich nichts geändert

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


All Articles