Mnohí noví zákazníci, keď začnú používať CloudSigma, chcú otestovať výkon; často chcú porovnať výkonnostné výsledky medzi cloudovými servermi a ich vlastnou infraštruktúrou, a to dáva zmysel. Priame porovnanie cien podľa zdrojov nehovorí ani zďaleka celý príbeh; to, na čom skutočne záleží, je konečný výsledok – koľko stojí dosiahnutie konkrétnej výpočtovej úlohy?
Pri akejkoľvek danej požiadavke sa množstvo zdrojov potrebných na jej dosiahnutie môže medzi cloudmi výrazne líšiť. To znamená, že porovnávanie iba cien nefunguje. Druhou stranou mince je, že porovnávanie samotného výkonu nie je o nič lepšie. Zmysluplné porovnania musia spojiť cenu aj výkon, aby sa vypočítala určitá miera nákladov na výpočtovú jednotku. V tomto príspevku sa podelím o niekoľko svojich myšlienok z testovania výkonu našich cloudových serverov a iných. Poskytnem tiež niekoľko tipov na získanie užitočných výsledkov a na to, čo skutočne znamenajú.
Dôležité upozornenia
Aby som to vysvetlil vopred, som dosť skeptický voči testovaniu výkonu vo všeobecnosti. Zriedkakedy ponúka skutočný pohľad na reálne využitie. Stručne povedané, neexistuje skutočná náhrada za spustenie reálnych aplikácií, ktoré plánujete na platforme používať. Ak to dokážete dosiahnuť za primerané náklady z hľadiska času, potom takýto postup nič nenahradí.
Ďalším faktorom je, ako vyťažený je poskytovateľ cloudu. Môžete otestovať výkon cloudových serverov a získať vynikajúce výsledky. Tie však môžu byť do veľkej miery spôsobené úrovňou využívania (alebo jeho nedostatkom) u daného konkrétneho poskytovateľa. To nemusí byť pozitívne znamenie. Môže to odrážať prevádzkové ťažkosti, stratu zákazníkov, minulé problémy s dostupnosťou a spoľahlivosťou atď. Pri interpretácii výsledkov testov výkonu by ste si preto mali vždy overiť minulé výpadky a iné potenciálne problémy poskytovateľa cloudu.
Ako záverečné dôležité upozornenie, výkon nie je jediným faktorom, ktorý by ste mali zvážiť. Nižší výkon môže často odrážať robustnejšiu (a redundantnú) hardvérovú architektúru, na ktorej je postavený. Preto je vždy dôležité mať veľmi jasnú predstavu o tom, na akej infraštruktúre je cloud vybudovaný. Vďaka tomu môžete výsledky spravodlivo porovnať, čo vám umožní urobiť zmysluplné rozhodnutie o kúpe.
Definujte problém
Neskôr v tomto príspevku uvádzam rôzne aspekty výkonu a spôsob, ako čo najlepšie interpretovať výsledky. Pred akýmkoľvek testovaním výkonu je však dôležité charakterizovať typ výpočtov, ktoré budete chcieť v cloude vykonávať; to určí relatívny význam rôznych výkonnostných metrík. Ak napríklad plánujete umiestniť databázový server, ktorý bude podliehať intenzívnemu čítaniu, ale slabému zápisu, mali by ste venovať pozornosť výkonu disku v cloude a najmä nesekvenčnému prístupu na čítanie.
Predtým, ako začnete s akýmkoľvek testovaním výkonu cloudových serverov, si jasne definujte, čo by ste považovali za dobrý výkon cloudu. Mali by ste určiť, ktoré aspekty sú kľúčové a majú neprimeraný vplyv na reálny výkon vašich výpočtov. Keď o tom budete mať jasnú predstavu, môžete začať s testovaním výkonu.
Výpočtový výkon
Keď sa pozrieme na hrubý výpočtový výkon, hovoríme o CPU a RAM. Rozdiely vo výkone na čisto výpočtovej úrovni medzi cloudmi v skutočnosti nie sú také veľké. Existujú však určité faktory, ktoré spôsobujú skutočné rozdiely.
Zďaleka najväčším faktorom ovplyvňujúcim výpočtový výkon v cloude je agregácia. Verejné cloudy sú multi-tenant prostredia. RAM a úložisko nemôžu byť v skutočnosti nadmerne alokované (hoci môžu byť predané vo väčšom množstve, než je kapacita), ale CPU môže byť a aj je. Úroveň agregácie sa výrazne líši, ale poskytovatelia verejného cloudu sú v podstate schopní predať kapacitu CPU fyzického hostiteľa na viac ako 100 %.
Niektorí z najväčších poskytovateľov využívajú pomery agregácie (contention ratio) CPU vyššie ako trojnásobok. To znamená, že celková ‘predaná’ kapacita CPU všetkých virtuálnych serverov na tom istom fyzickom stroji môže byť trojnásobkom jeho skutočnej kapacity CPU. Robia to preto, lebo väčšina virtuálnych serverov po väčšinu času nevyužíva ani zďaleka 100 % pridelenej kapacity CPU. Napriek tomu pomery agregácie priamo ovplyvnia výkonnostné testy cloudových serverov a ich reálne využitie. Ak je agregácia vysoká (t. j. pri viac ako 200 % alokácii CPU), výkon cloudového servera sa výrazne zhorší.
Zjednodušene povedané, ak zaťaženie na akomkoľvek fyzickom stroji dosiahne viac ako 1 na jadro, výpočtové úlohy sa zaraďujú do frontu a čas, ktorý tento virtuálny stroj potrebuje na dokončenie úlohy, bude dlhší. Vzhľadom na to, že väčšina cloudov účtuje poplatky na základe kapacity za hodinu, má to priamy vplyv na náklady zákazníkov daného cloudu.
Ďalším dôležitým faktorom ovplyvňujúcim výpočtový výkon je počet jadier CPU, ku ktorým má virtuálny stroj prístup. To nie je faktorom pre všetky aplikácie, ale mnohé moderné aplikácie podporujú viacvláknové spracovanie (multi-threading). V praxi to znamená, že aplikácia a/alebo operačný systém dokáže rozdeliť výpočtové úlohy medzi viacero jadier. Skvelým tipom na zlepšenie výkonu vášho výpočtového prostredia je zosúladenie počtu vlákien (t. j. jadier), ktoré aplikácia dokáže podporovať, s počtom jadier, ku ktorým má virtuálny stroj prístup.
Bohužiaľ, pri mnohých verejných cloudoch to nie je možné. Je to preto, že ich virtualizačné platformy nepodporujú virtualizáciu na úrovni jadier CPU. Inými slovami, každé jadro môže v danom čase využívať iba jeden virtuálny stroj. V cloudoch, ktoré podporujú virtualizáciu jadier CPU, by ste mali experimentovať s menením počtu jadier pre daný stroj, pričom celkovú veľkosť CPU ponecháte rovnakú.
Napríklad, ak máte 2GHz stroj, môžete vidieť, ako zdvojnásobenie používaných jadier z dvoch na štyri ovplyvní vaše testovanie výkonu. Vďaka tomu budú môcť aplikácie bežiace na tomto virtuálnom stroji vykonávať úlohy prostredníctvom štyroch jadier súčasne. V našom prípade môžete nastaviť počet jadier, ktoré virtuálny stroj používa, prostredníctvom záložky ‘advanced’ (pokročilé) v modálnom okne s detailmi servera vo webovej konzole. Nezabudnite však vždy skontrolovať, aká je štandardná veľkosť jadra poskytovateľa cloudu, skôr než manuálne prepíšete počet používaných jadier. V našom prípade je to 2,2 GHz na jadro, ale v jednotlivých cloudoch sa to líši.
Odporúčal by som zvážiť použitie POV-RAY, CoreMark, Dhrystone alebo Whetstone na testovanie výkonu cloudových serverov.
Úložisko: skutočný benchmark výkonu cloudových serverov
Celkový výkon je obmedzený najslabším článkom, kde vzniká úzke hrdlo. V súčasnosti technológia v oblasti virtualizácie výrazne pokročila, pokiaľ ide o využitie CPU a RAM. Napríklad jeden fyzický stroj môže byť virtualizovaný a môže na ňom bežať viacero cloudových serverov s minimálnou stratou celkového agregovaného výkonu. Žiaľ, v prípade úložiska je potrebné urobiť ešte veľký pokrok. Konečným dôsledkom je, že vo väčšine prípadov je výkon virtuálnych serverov v cloude určený výkonom úložného riešenia daného cloudu.
Stručne povedané, úložisko je v súčasnosti limitujúcim faktorom výkonu väčšiny výpočtových úloh v cloude. Bez ohľadu na to, aké výsledky môžu pov-ray a iné benchmarky priniesť pre čisto výpočtové úlohy, realita je taká, že rýchlosť, s akou dokáže virtuálny server čítať a zapisovať dáta na fyzické disky úložiska, v súčasnosti určuje reálny výkon cloudového servera.
S ohľadom na to majú skutočné rozdiely vo výkone v cloude, dokonca aj pokiaľ ide o výpočtové úlohy, tendenciu prameniť z rozdielov vo výkone úložiska. Ako už bolo spomenuté skôr v tomto príspevku, existujú veľmi odlišné potreby zákazníkov v závislosti od výpočtovej úlohy. To neplatí o ničom inom viac ako o úložisku. Potrebujete rýchly prístup na čítanie k veľkým sekvenčným blokom dát (ako sú streamované médiá) alebo k malým nesúvisiacim informáciám (napríklad vo veľkej databáze)? Potrebujete udržať intenzívny prístup na zápis pre rýchlo sa meniace dáta, ku ktorým sa pristupuje periodicky v nárazových vlnách? Existuje množstvo scenárov a každý bude na rovnakej platforme fungovať inak.
Rozdiely vo výkone v zásade spočívajú v architektúre. Tieto rozdiely v architektúre zvyčajne vyplývajú z rôznych stupňov robustnosti, pokiaľ ide o ukladanie dát, ich redundanciu, a preto v skutočnosti aj z pravdepodobnosti, že sa niekedy nenávratne stratia. Na vysokej úrovni cloudy využívajú buď centralizované dátové riešenia vo forme Storage Area Network (SAN) alebo distribuovanejších lokálnych úložných riešení. V nich sa úložisko nachádza na každom jednotlivom fyzickom stroji.
Dobré siete SAN majú v sebe prirodzene zabudovanú vysokú úroveň redundancie. Výkon však trpí, pretože dáta sa musia posielať zo siete SAN cez sieť do procesora’ a pamäte RAM virtuálneho počítača pre výpočtové úlohy. V dôsledku toho majú cloudy založené na SAN tendenciu mať nižší porovnateľný výkon v porovnaní s cloudmi s lokálnymi distribuovanými úložnými riešeniami. Ďalšou nevýhodou SAN je, že predstavuje veľmi veľký jediný bod zlyhania. Siete SAN sú mimoriadne spoľahlivé. Ak sa však niekedy vážne pokazia (a to sa už stalo), pravdepodobne budete čeliť veľmi veľkému výpadku a poškodeniu dát.
Väčšina poskytovateľov cloudových služieb využívajúcich siete SAN nepoužíva plne redundantné riešenia pre prípad zlyhania (fail-over) typu používaného v podnikovom prostredí, a to najmä z nákladových dôvodov. Je dôležité si uvedomiť, že nie každá sieť SAN nie je’ rovnaká, a zistiť, akú úroveň redundancie poskytovateľ cloudu vo svojich sieťach SAN používa.
Cloudy založené na lokálnom úložisku majú tendenciu mať dobrý diskový výkon. Často však ponúkajú lokálne úložisko len v neperzistentnej forme. To nie je’ spravodlivé porovnanie s perzistentným úložiskom. Dočasné úložisko nemusí’ byť odolné voči chybám rovnakým spôsobom ako trvalé úložisko. Pre zmysluplné výsledky je vždy dôležité porovnávať perzistentné úložisko s perzistentným úložiskom.
Pri pohľade na cloudy s distribuovanými lokálnymi úložnými riešeniami musíte tiež vedieť, akú majú redundanciu. Pevné disky zlyhávajú vo významnej miere, a preto je spôsob ukladania kritický. Väčšina predajcov používa nejakú formu RAID , ale existujú veľmi odlišné úrovne bezpečnosti. Na spodnej hranici máte RAID1, kde sa dva disky v podstate navzájom zrkadlia. To má zvyčajne dobrý výkon. Ale keď jeden disk zlyhá, kým náhradný disk neskopíruje všetky dáta zo starého disku, dáta sú vystavené riziku úplnej straty, ak zlyhá druhý (silne zaťažený) disk. Taktiež počas akejkoľvek obnovy poľa RAID1 bude výkon disku pravdepodobne oveľa, oveľa nižší ako zvyčajne.
Mnohí predajcovia preto používajú RAID5 (odolný voči zlyhaniu jedného disku) alebo RAID6 (odolný voči zlyhaniu dvoch diskov). RAID6 ponúka zďaleka najbezpečnejšie riešenie pre lokálne úložisko, ale vyžaduje si veľkú daň v podobe výkonu. Náš prístup spočíva v použití RAID6, ale v kombinácii so špičkovými hardvérovými kartami RAID radičov. Majú veľkú vyrovnávaciu pamäť a sú zálohované batériou. Karty RAID radičov, ktoré používame, sú v skutočnosti výrazne drahšie ako celé diskové polia. Vďaka tomu dokážeme poskytnúť výkon porovnateľný s oveľa menej odolnými zostavami a zároveň stále ponúkať veľmi veľkú bezpečnostnú sieť úložiska RAID6. Prečítajte si viac o našom nastavení cloudovej infraštruktúry, o ktorom hovoríme veľmi otvorene.
Odporúčam použiť IOzone alebo Bonnie++ na testovanie výkonu disku.
Takže pri interpretácii výsledkov benchmarkov úložiska sa uistite, že máte k dispozícii aj nasledujúce informácie:
- akú architektúru úložiska cloud používa (lokálne, SAN, iné)?
- aké opatrenia pre prevzatie služieb pri zlyhaní (fail-over) a redundanciu sú pre dáta zavedené?
- je úložisko, ktoré benchmarkujem, dočasné alebo trvalé?
Spojenie odpovedí na tieto tri otázky s výsledkami benchmarkingu vám poskytne pomerne dobrý prehľad o skutočnom výkone úložiska.
Sieťové pripojenie
Určiť a merať výkon sieťového pripojenia je podstatne jednoduchšie ako výkon výpočtový a diskový. Výkon siete má dva kľúčové aspekty: latenciu a šírku pásma.
V závislosti od vašich potrieb môže alebo nemusí byť latencia siete, ktorú poskytovateľ cloudu používa, dôležitá. Ak cloud využívate na prevažne samostatné operácie, je nepravdepodobné, že latencia bude prioritou. Ak však prevádzkujete aplikácie v reálnom čase, ktoré komunikujú s vonkajším svetom mimo cloudu, potom bude latencia kritickým faktorom určujúcim výkon.
Prevažná väčšina latencie zvyčajne vyplýva z čistej fyzickej vzdialenosti. Napríklad väčšina latencie medzi Londýnom a San Franciscom je v skutočnosti čas, ktorý svetlo potrebuje na prekonanie tejto vzdialenosti. Rozdiely v latencii sú určené rôznou efektivitou zvolenej trasy. Toto je aspekt, ktorý sa v jednotlivých cloudoch líši. Efektivita trasy je priamym dôsledkom poskytovateľov sieťových služieb, s ktorými má cloud priame spojenie. K tomu dochádza buď odberom IP konektivity od nich, alebo prostredníctvom peeringu. Pri zisťovaní latencie môžete jednoducho pingnúť svoj cloudový server a určiť jeho výkon. Je však dôležité určiť výkon medzi vašimi skutočnými koncovými používateľmi a vaším cloudovým serverom.
Ak sa väčšina vašich používateľov nachádza v jednej geografickej oblasti alebo prístup bude primárne z centrály vašej spoločnosti, je dôležité otestovať výkon z týchto lokalít. Komerčné služby, ako napríklad Pingdom ponúkajú nákladovo efektívny spôsob určovania latencie z veľkého počtu bežných lokalít po celom svete súčasne.
Skutočná šírka pásma, ktorú môže váš cloudový server dosiahnuť, je tiež veľmi dôležitá. Na rozdiel od tradičnejších hostingových riešení majú poskytovatelia cloudu tendenciu účtovať poplatky v závislosti od celkového objemu prenesených dát. Inými slovami, nie v závislosti od času spôsobom platby za Mbit, ktorý vám poskytuje fixnú úroveň konektivity 24/7. Napriek tomu mnohí poskytovatelia cloudu budú ‘škrtiť’ šírku pásma pre akýkoľvek virtuálny server. Pre používateľa to bude neviditeľné, kým nenarazíte na túto bariéru. Ak máte profil šírky pásma s výraznými špičkami, môže to byť dôležitý výkonnostný faktor, ktorý treba vziať do úvahy.
Na otestovanie skutočnej šírky pásma vášho cloudového servera je dôležité pokúsiť sa stiahnuť dáta do cloudového servera zo zdroja, ktorý na svojej strane v skutočnosti neobmedzuje prenosovú rýchlosť. Často zisťujem, že skvelým spôsobom, ako určiť dostupnú rýchlosť, je stiahnuť veľký súbor od významného predajcu, ako je napríklad Microsoft, Ubuntu alebo ešte lepšie aktualizáciou operačého systému. Týmto spôsobom sa zvyčajne sťahuje mnoho rôznych súborov z rôznych lokalít súčasne. Poskytne vám to celkom dobrú predstavu o rýchlosti vášho pripojenia.
Často sťahujem Fedora live CD z ich hlavnej stránky ako štandardný test, ale mali by ste experimentovať minimálne s niekoľkými rôznymi súbormi a lokalitami. Ak trváte na tom, že chcete mať vlastnú veľmi rýchlu firemnú sieť, možno budete chcieť namiesto toho otestovať stiahnutie súboru z cloudového servera do vlastnej siete.
Teraz opäť zohľadnite cenu pri vyhodnocovaní výsledkov
Pomocou vyššie uvedených metód by ste mali získať dobrú predstavu o tom, aký výkon dosahujú rôzni poskytovatelia cloudových serverov. Okrem toho by ste mali vedieť, na ktoré aspekty sa zamerať, ktoré sú pre vaše konkrétne potreby najdôležitejšie.
Posledným krokom je pridanie cenovej dimenzie k výsledkom benchmarku. Na toto neexistuje žiadny vzorec. Závisí to od relatívneho výkonu rôznych aspektov uvedených vyššie, ktoré sami určíte. Ak jeden cloud poskytuje o 40 % lepší výkon (ako ste sami určili), ale je len o 30 % drahší, potom jednoznačne vyzerá atraktívne. Podobne, ak máte veľkú potrebu šírky pásma, nižší výpočtový výkon môže byť prekonaný konkurenčným cenovým plánom pre prenos dát. Kľúčom k správnemu rozhodnutiu je zohľadniť všetky rôzne faktory.
Na záver, benchmarking by mal byť súčasťou širšieho procesu určovania toho, ktoré cloudové servery sú pre vás tie pravé. To by malo zahŕňať aj ďalšie aspekty. Môžu medzi ne patriť napríklad zmluvy o úrovni služieb, zváženie závislosti od dát/dodávateľa, fyzické umiestnenie a právna jurisdikcia. Spojením všetkých týchto aspektov sa dostanete do pozície, kedy budete môcť urobiť správne rozhodnutie pri výbere poskytovateľa cloudových služieb.
Komentáre
Zatiaľ žiadne komentáre. Buďte prvý.