AWS vs GCP vs staðbundinn CPU árangur samanburður

Nýlega átti ég möguleika á að taka þátt í verkefni þar sem við urðum að meta verð / gildi hlutfall mismunandi skýjafyrirtækja og þurftum að bera það saman við núverandi vélbúnað innanhúss. Við rannsóknir okkar á internetinu fundum við furðu lítið magn af raunverulegum, gagnlegum viðmiðum þegar kemur að hráum afköstum CPU, svo við ákváðum að gera okkar eigið.

Markmiðið: safnaðu gögnum sem geta stutt ákvörðun um hvaða skýjafyrirtæki þarf að velja og hjálpa nákvæmlega hve mörg vCPU-skjöl þú þarft að kaupa í skýinu, þegar þú veist nú þegar hve margir þú notar venjulega á líkamlegum netþjóni í eigin berum málmi umhverfi.

Þessi prófunarhringur hefur ekki í hyggju að vera fullkominn og ítarlegur, það eru fagleg upplýsingatímarit sem gera það; við vildum hafa skjót og áreiðanleg viðmiðunargögn sem henta þínum þörfum. Ef þú hefur meiri tíma, væri fróðlegt að sjá nákvæm viðmið með mismunandi kjarna, fyrir / eftir Meltdown-Specter prófanir með mismunandi þráð / CPU kjarna fjölda osfrv.

Aðferðin

Til viðmiðunar ætla ég að nota sjálf-farfuglaheimili framreiðslumaður með nýlegri gerð af Intel Xeon. Allir þátttakendurnir munu vera mismunandi Xeon módel. Bæði á Amazon og Google er aðeins að finna Intel Xeon örgjörva, bókstaflega ekkert annað, og þessi þróun er nokkurn veginn sú sama í miðstöðvum.

Ég gerði prófin með því að nota Docker mynd af vel þekktum sysbench tólinu, en til samanburðar gerði ég sömu mælingu með tvöfaldan, án þess að nota Docker. Ég fann <0,5% mun á mörgum keyrslum, svo til að auðvelda prófunarferlið og tryggja að við notum nákvæmlega sömu sysbench útgáfu með sömu bókasöfnum (sysbench 1.0.13 (með því að nota búnt LuaJIT 2.1.0-beta2)) ákváðum við að fara all-in á Docker (CE 17.xx stöðugur).

Eftirfarandi prófskipanir voru notaðar:

skipuleggjari keyrsla - cpus 1 - rm -ti nokkrir nínur / sysbench sysbench cpu - cpu-max-prime = 20000 - þræðir = 1 - tími = 900 keyrsla
skipuleggjari keyrsla - cpus 2 - rm -ti nokkrir nínur / sysbench sysbench cpu - cpu-max-prime = 20000 - þræðir = 2 - tími = 900 keyrsla
skipuleggjari keyrsla - cpus 8 - rm -ti nokkrir nínur / sysbench sysbench cpu - cpu-max-prime = 20000 - þræðir = 8 - tími = 900 keyrsla

Mælitími verður

  • 10 sekúndur til að sjá árangur á toppi og
  • 15 mínútur til að sjá raunverulegan árangur til langs tíma.

Við ætlum að bera saman hraða CPU með atburðum á sekúndu gildi niðurstaðna.

Á berum málmi gerði ég nokkrar prófanir til að sjá hvort það sé verulegur munur miðað við stýrikerfið (og þar af leiðandi kjarnann) sem notaður var: Ég prófaði sömu vél með CoreOS Container Linux stöðugt (1632.3.0 - kjarna 4.14.19) , Ubuntu 14.04 LTS og CentOS 7. Aftur, munurinn var flokkur villu flokkur, svo við ætlum að sjá eftirfarandi stýrikerfi:

  • á berum málmi: CentOS 7 og CoreOS 1632.3.0
  • í Amazon Web Services: Amazon Linux
  • á Google Cloud Platform: CoreOS 1632.3.0

Hópur 1: líkamlegir netþjónar

Viðmiðunarvélin: 2016-gerð Intel (R) Xeon (R) CPU E5–2690 v4 @ 2,60GHz.

Mynd af Igor Ovsyannykov á Unsplash

Við stakan þriggja uppsetningar, á stutta 10 sekúndna prófi, fáum við 303,13 atburði / sekúndu, en prófið til lengri tíma sýndi aðeins betri afköst með 321,84 e / s. Við munum taka 15 mín. Niðurstöðu sem 100% og bera allt hitt saman við þetta gildi.

Næst ætlum við að gera viðmiðið á 2 hollur CPU algerlega, nota 2 samsíða þræði. Athyglisvert er að nú virðist munurinn á 10 á móti 900 sekúndu viðmiðuninni vera mjög lítill: 670,61 á móti 672,89 e / s. Þessar niðurstöður sýna að 2 CPU algerlega á móti 2 * 1 CPU algerlega eru 4,54% afkastameiri á þessu sérstaka Intel Xeon líkani.

Á sama hátt fáum við 816 þráða 2716,31 atburði á sekúndu á 8 kjarna-8 þræði sem gefur okkur + 5,50% (eða 105,50%) af frammistöðu 8 * 1 CPU kjarna.

Svo skulum bera þetta saman við aðrar líkamlegar vélar!

Keppendur:

  • 2014 líkan af Intel (R) Xeon (R) CPU E5–2660 v3 @ 2,60GHz
  • 2013 líkan af Intel (R) Xeon (R) CPU E5–2658 v2 @ 2,40GHz
  • og til gamans má geta að 2009 líkan af Intel (R) Xeon (R) CPU X3460 @ 2.80GHz

Eins og búist var við, því eldri sem CPU er, því hægari verður það:

2016 → 2014 → 2013: 321,84 → 308,67 → 284,93 um einn kjarnaviðmið

Eða í prósentum, samanborið við Xeon 2016:

100,00% → 95,91% → 88,53% (1 kjarna)
100,00% → 96,36% → 86,55% (2 kjarna)
100,00% → 95,14% → 86,53% (8 kjarna)

Eins og þú sérð, á líkamlegum netþjónum er frammistaða CPU línuleg með fjölda kjarna og þráða. Afköst n kjarna samanborið við n * 1 kjarna eru á bilinu 102–105%, svipað og fyrsta prófaða líkanið.

En hey, sagðirðu ekki 4 Xeons í samanburðinum ?!

* drumroll * - tæplega 10 ára gamli Xeon X3450 olli óvæntum óvörum: það sló vitleysuna út úr öllum nýrri bræðrum í tilbúnum viðmiði með einum þráð, með því að skora ótrúlegt 431,13 e / s gildi - það er 133,96% af 2016 tilvísunarlíkan. Já, þá var fjölþráður ekki neitt fyrir meðaltalforritið.

Eins og við var búist bráðnar þessi kostur mjög hratt þegar við eykjum þráðarfjöldann fyrst í 2, seinna í 8: en á tvískiptum kjarna náum við samt glitrandi 127,71% af viðmiðun 2016, á 8 kjarna Er þegar með aðeins 73,52% árangur stóra bróðurins (1996,96 e / s vs 2716,31 e / s). Þessi örgjörva er með 8 rökréttum kjarna svo við getum ekki gengið lengra með prófin.

Tíu sekúndna afbrigði viðmiðunar á toppnum, á húsnæði15 mínútna niðurstaðan miðað við húsnæði

Við the vegur, athyglisvert viðmiðið sýndi sömu niðurstöður á 20 kjarna E5–2658 v2 með 40 þráðum (eða 40 rökréttum kjarna, eins og í Hyper Threading), með 60 þræði, 80 þræði eða 160 þræði - og þar til 40, það jókst línulega: 10 kjarna var 25% af 40 kjarna niðurstöðunni, 20 kjarna var 50%, 30 kjarna 75% osfrv. Svo lítur út fyrir að þú hafir samsvarað raunverulegum fjölda rökréttra CPU kjarna, aukið þráðafjöldann hér að ofan sem ekki þú færð þér ekki neitt til langs tíma.

Takeaways frá líkamlegu vélarprófunum

  • frammistöðu mælist línulega með fjölda kjarna: ef þú setur fleiri kjarna færðu línulega meiri afköst
  • það virðist vera um + 5% hagnaður á hverju ári í nýju Xeon líkaninu miðað við árið á undan
  • gamla 2009-gerð Xeon er verulega sterkari á eins þráða vinnuálagi, en tapar fljótt eftir því sem margir þræðir birtast
Hlutfallslegur árangur miðað við 2016 Xeon E5–2690 v4Margþráða hagræðing samanborið við eins þráða vinnuflæði, á forsendum

Hópur 2: Amazon EC2 tilvik

Á AWS pallinum ertu með mikið af mismunandi gerðum sem þú getur sérsniðið að þínum þörfum, svo við gerðum próf með töluvert af þeim. Ég setti einnig hér með fyrirhugað notkunartilfelli af þessum tilvikum af Amazon:

  • tilvísun: innanhúss Intel (R) Xeon (R) CPU E5–2690 v4 @ 2,60GHz
  • t2 (basic): Intel (R) Xeon (R) CPU E5–2676 v3 @ 2,40GHz
  • m5 (samheitalyf): Intel (R) Xeon (R) Platinum 8175M CPU @ 2,50 GHz
  • c5 (hár CPU): Intel (R) Xeon (R) Platinum 8124M CPU @ 3,00 GHz
  • r4 (hár mem): Intel (R) Xeon (R) CPU E5–2686 v4 @ 2.30GHz
  • i3 (hár IOPS): Intel (R) Xeon (R) CPU E5–2686 v4 @ 2.30GHz

Að undanskildum grunn t2 gerðinni (2015) eru allir örgjörvarnir 2016 eða nýjustu 2017 gerðirnar, svo þær eru allar sambærilegar við tilvísun okkar. Athyglisverð hliðarmerki: þessar sérstöku Xeon Platinum gerðir eru í raun sérsniðnar fyrir Amazon, þú getur ekki keypt þær á markaðnum.

Amazon er að selja vCPU, sem er í samræmi við smáa letrið, rökrétt CPU algerlega, með háþræðingu virkt og ekki bara raunverulegar líkamlegu kjarna. Þessar algerðar eru venjulega ekki of háar; þó að þeim sé ekki deilt „besta átaki“ CPU algerlega, er engin ábyrgð að þeir geri ekki hagræðingu milli mismunandi notenda á sama vél. (Með örtilögunum hefurðu möguleika á að kaupa hluta kjarna sem er deilt á milli margra leigjenda, fyrir miklu minni verð.)

Svo skulum við fara í prófin! Eftir að hafa gert sömu mælingar á sysbench náðum við eftirfarandi gildi í 10 sekúndna stuttu prófinu:

Tíu sekúndna afbrigði af toppi AWS

Þú getur þegar séð:

  • afköstin með einum kjarna eru miklu betri en viðmiðun okkar, með aðeins 1 undantekningu
  • en þegar með 2 þræði, þá byrjar þú að tapa 10–25% miðað við líkamlega vélbúnað sem hýsir sjálfan þig
  • T2 virðist vera mjög áreiðanlegt, stöðugt dæmi með afköstum úr málmi

Ekki gleyma að Amazon gæti leyft tímabundna toppa í vinnuálaginu án þess að takmarka afköst CPU þinn. Þess vegna gerðum við 15 mínútna viðmiðin:

15 mínútna markatölur, AWS

Þegar til langs tíma var litið sýndu líkamlegu tilfellin stöðugt 105% árangur miðað við niðurstöðurnar með einum þráð.

Aftur, T2 virkar eins og okkar eigin hýst netþjóna, með mjög fyrirsjáanlegum árangri.

Afgangurinn er ekki svo aðlaðandi, jafnvel besta tilfellið að við töpum ~ 17%, sem fer upp í ~ 27% með almennum tilgangi m5. Það þýðir að ef þú ert með 100 CPU kjarna í gagnamiðstöðinni þinni þarftu að kaupa 127 vCPU alger í Amazon til að passa sömu frammistöðu.

Hlutfallsleg frammistaða AWS miðað við 2016 Xeon E5–2690 v4Margþráða hagræðing samanborið við eins þráða vinnuflæði, AWS

Uppfærsla: einn af samstarfsmönnum mínum benti á að t2 er sprungin tegund nema hinir; það virkar með svokölluðum „CPU credits“: https://aws.amazon.com/ec2/instance-types/#burst

Svo almennt þýðir þetta annað hvort að þú munt þjást af þjöppuðu afköstum með tilbúið viðmið (100% CPU notkun) samfellt í 2 klukkustundir í röð eða að þú verður að borga að lágmarki aukalega 5 sent á klukkustund til að fá ótakmarkaða CPU springa lögun af t2. Þetta gæti leitt til ófyrirsjáanlegs kostnaðar nema að þú þekkir vel eiginleika umsóknar þinnar.

Ég er að velta fyrir mér hvort það væri mögulegt að eyðileggja og endurskapa öll t2 tilvikin mín á 23 klukkustunda fresti, svo ég geti haldið áfram á föstu verði, ódýru afkastamiklu dæmi…? (Auðvitað ef forritið og innviðirnir styðja það.)

Hópur 3: Google Compute Engine tilvik

Þvert á móti Amazon, Google býður upp á mjög einfaldað eignasafn: annað hvort kaupirðu staðlaðar eða CPU-bjartsýni sýndarvélar - og það er það. Jafnvel CPU-bjartsýni þýðir að þú færð sama staðlaða vélbúnað, en með fleiri CPU algerlega úthlutað, í stað þess að gefa meira vinnsluminni til dæmis.

Virðist sem þeir noti mjög einfaldan, mjög flatan vélbúnaðargarð og það hjálpar þeim líklega mikið við viðhaldið. Þeir segja þér ekki í raun hvaða vélbúnaður er í gangi í VM þínum þegar þú gerir kött / proc / cpuinfo, en með tíðninni geturðu haft ágiskun af því að þeir segjast vera með eftirfarandi eigu:

  • 2,6 GHz Intel Xeon E5 (Sandy Bridge)
  • 2,5 GHz Intel Xeon E5 v2 (Ivy Bridge)
  • 2,3 GHz Intel Xeon E5 v3 (Haswell)
  • 2,2 GHz Intel Xeon E5 v4 (Broadwell)
  • 2,0 GHz Intel Xeon (Skylake)

Í öllum prófunum mínum fékk ég alltaf 2,5 GHz líkan, upplýsingar um CPU sagði aðeins eftirfarandi: Intel (R) Xeon (R) CPU @ 2.50GHz. Þetta virðist vera 2013 fyrirmynd.

Þar sem aðeins eru um tvenns konar tilvik að ræða var prófið mjög fljótlegt og auðvelt. Ég valdi n1-staðalinn og n1-highcpu gerðirnar.

Við skulum troða tölunum!

Tíu sekúndna afbrigði af toppi, GCP

Allar niðurstöðurnar með einum kjarna voru betri en líkamlegur vélbúnaður okkar (2016 Xeon), en aðeins lítillega. Ef það er í raun Xeon 2013, þá vá, öll mín virðing til hagræðingarverkfræðinga Google!

Til áminninga: Amazon var með 10–24% árangurstap þegar við fjölguðum algerlega. (Nema fyrir mjög stöðugt t2 dæmi.) Virðist eins og Google sé meira og minna það sama hingað til.

Það kom á óvart að hátt CPU-tilfinningin var í raun hægari en staðalinn. En eins og ég gat um hér að ofan, þetta er sams konar vélbúnaður, það eru bara fleiri kjarna en vinnsluminni miðað við venjulega dæmið.

Aftur, á svipaðan hátt og Amazon, gerir Google þér kleift að hafa tímabundna toppa í CPU-notkuninni þinni án þess að gera þér kleift að reikna getu þína. Svo skulum við sjá langtímamarkmiðin:

15 mínútna markviðmið, GCP

Svo virðist sem við aukum vinnuálagið og við töpum stöðugt 15–22% af frammistöðu. Hjá Amazon var það 17–27%.

Hér sá ég því miður ekki t2 samsvarandi dæmi, það á að vera n1-staðallinn, en það gengur örugglega ekki eins og líkamlegu vélarnar okkar.

Hlutfallslegur árangur GCP miðað við 2016 Xeon E5–2690 v4Margþráða hagræðing samanborið við eins þráða vinnuflæði, GCP

Yfirlit: AWS vs GCP

Þegar þú horfir aðeins á hráa frammistöðu virðist Amazon vera mjög sterkur í samkeppninni:

Hlutfallslegur afköst CPU, AWS vs GCP miðað við 2016 Xeon E5–2690 v4

Hins vegar er slíkur niðurbrotinn samanburður aldrei raunverulega gagnlegur: Amazon býður upp á mikið af mismunandi tegundum af tilvikum, sem gætu verið með svaka CPU, en þú færð NVMe-eldingarhraða geymslu osfrv. Stundum er það nákvæmlega það sem þú þarft. Enn, þessi grein snýst aðeins um hráa afköst CPU, svo við skulum sjá hvar frumvarpið endar:

Verð á eftirspurn fyrir 8 vCPU kjarna, Amazon vs Google

Núna geturðu séð að það er miklu jafnvægi! Þú færð það sem þú borgar fyrir.

Ef þú þarft minni vélar gæti myndin litið aðeins út fyrir annað - við skulum segja um tvíþætt tilvik:

Verð á eftirspurn fyrir 2 vCPU kjarna, Amazon vs Google

Auðvitað getur þú sparað tonn af peningum með því að nota Amazon blettatilfelli (kauphallarskírteini af leyfi með ókeypis tölvunargetu) eða fyrirframgefnum Google tilvikum (sem Google getur slökkt á handahófi hvenær sem er af handahófi, en síðast eftir sólarhring) . Fyrir raunverulegt vinnuframlag finnst mér ekki raunhæft að þú gætir áskilið alla getu þína með hættulegum samningum til að vinna 20–90% af afslætti.

Raunhæf atburðarás gæti verið að kaupa föst tilvik á eftirspurn fyrir venjulegt kjarnaálag þitt, þá skala það sjálfkrafa með blettum / fyrirsjáanlegum ódýrum tilvikum þegar mikil umferð er. Fyrir QA umhverfi þitt ætti ódýran að vera fullkomlega fín - bara aðlaga öll verkfæri þín til að stjórna rétt hverfa sýndarvélar skyndilega og úthluta fjármagni á ný. Og auðvitað snýst ský allt um sjálfvirkt stigstærð: þegar þú hefur ekki svo marga gesti á nóttunni þarftu ekki að borga fyrir mikið af gangandi tilvikum. Og þetta er eitt af því þar sem þú getur fengið mikinn ávinning miðað við hefðbundna innviði á staðnum. (Þú þarft ekki að kaupa +200 líkamsræktarvélar með viðhaldssamningum o.s.frv. Aðeins af því að þú ert með alla daga 2 tíma hámark, þá nota þessar vélar aðeins rafmagn með 40% aðgerðalausu CPU…)

Viðbótar valkostur sem þú getur haft: báðir veitendur bjóða einnig langtímaafslátt ef þú skuldbindur þig til 12 eða 36 mánaða samfelldrar notkunar.

Kostnaðurinn við lausn A eða B er mun flóknari en bara að athuga handahófskennt stundarverð, þegar þú byrjar að huga að sérsniðnu netkerfi, geymslukröfum, bandbreidd, o.fl. um uppfærðar upplýsingar á Netinu.

Lykilmunur: ský á móti afkastagetu CPU á staðnum

Ef það eru nokkur lykilatriði sem við gerðum okkur grein fyrir með því að gera þennan samanburð:

  • á líkamlegum vélum: ef þú bætir við fleiri CPU-kjarna færðu línulega meiri afköst
  • meðan á skýjafyrirtækjunum stóð var það aðeins að hluta til satt: það eykst línulega með fleiri vCPU-tækjum, en samt hefurðu tilhneigingu til að fá ~ 80% árangur af líkamlegri vél (= þú þarft að kaupa fleiri örgjörva í skýinu)
  • í einum þráðum, einum CPU vinnuferli, vinna skýjafyrirtækin hendur niður vegna þess að þeir eru með dýrustu, stærstu örgjörvana sem eru mjög sterkir á einum þráð

Uppfærsla: endurgjöf frá skýjafyrirtækjunum

Annar tveggja skýjafyrirtækja gaf okkur bein viðbrögð við þeim árangri sem við náðum. Þeir sögðu að árangurstapið stafaði af því að nota Hyper Thread kjarna, í stað þess að hafa hinar raunverulegu, eins og í berum málmprófum - vegna þess að í líkamlegu vélinni þegar þú takmarkar Docker við 8 CPU algerlega, hefurðu samt kannski 12 í viðbót, tilbúinn fyrir OS til að nota fyrir truflanir o.s.frv.

Þannig að þeir gáfu til kynna að ef við þyrftum 8 raunverulegar kjarna til að bera saman við líkamlegar vélar, þá ættum við að kjósa um 16 kjarna tilvik til að fá hinar raunverulegu 8 líkamlegu örgjörva algerlega frá okkur. Annars vegar er það algerlega skynsamlegt, hins vegar þýðir það samt að ég þarf að kaupa 2x stærð (og verð) dæmi til að ná / fara fram úr raunverulegri afkomu húsnæðisins ...

Til að staðfesta kröfur þeirra gerðum við sömu viðmið í KVM þyrpingunni okkar, úthlutuðum 8, 2, 1 vCPU kjarna, rétt eins og í skýinu. Svo bara til að prófa það sem þeir stungu upp á, gerðum við líka hring með +2 auka vCPUum, aðeins eftir fyrir OS.

Niðurstöðurnar voru í samræmi við fyrri mælingar okkar frá vélbúnaðarprófunum sem ekki eru KVM, innanhúss:

15 mínútna markviðmið, KVM innanhúss

Eins og þú sérð er það nákvæmlega sama niðurstaðan: ef þú setur 8x fleiri sýndarkjarna í KVM færðu 8x meiri afköst. Ekki 6x fleiri eingöngu eða svo.

Vegna skorts á tíma gerði ég síðan skyndipróf í Google Cloud og notaði ofangreinda aðferð: offramboð á tiltækum kjarna mikið - svo í grundvallaratriðum þarf ég aðeins 2 algerlega fyrir umsókn mína, en ég mun kaupa 8:

15 mínútna viðmiðunarniðurstöðurnar, GCP með offramboðnum úrræðum

Já, það er satt, hér fékk ég línulega frammistöðuaukningu, rétt eins og með beran málm - en fyrir verðið að kaupa 2x, 8x osfrv. Meira en það sem ég vildi upphaflega borga, en með líkamlegu vélunum átti ég ekki þetta takmarka, jafnvel með KVM virtualization.

Næsta skref væri að gera alvöru Java viðmið eða annað raunhæfara frammistöðupróf, en hingað til er hægt að nota þessar niðurstöður þegar í áætlanir og útreikninga.

Þakka þér fyrir að taka þér tíma til að lesa þetta, ég vona að þér hafi líka fundist það gagnlegt. Vinsamlegast ekki hika við að deila hugsunum þínum eða þér ef þú ert með svipað viðmið, væri gaman að sjá hvernig þær bera sig saman við þessar niðurstöður.