Zpět na blog

Benchmarking cloudových serverů: Průvodce cloud computingem pro zasvěcené

Benchmarking cloudových serverů: Průvodce cloud computingem pro zasvěcené

Mnoho nových zákazníků, když začnou používat CloudSigma, chce otestovat výkon; často se snaží porovnat výkonové výsledky mezi cloudovými servery a jejich vlastní infrastrukturou, a to dává smysl. Samotné srovnání cen podle zdrojů zdaleka neříká celý příběh; to, na čem skutečně záleží, je konečný výsledek – kolik stojí provedení konkrétní výpočetní úlohy?

Pro jakýkoli daný požadavek se množství zdrojů potřebných k jeho dosažení může mezi cloudy výrazně lišit. To znamená, že pouhé porovnávání cen nefunguje. Druhou stranou mince je, že porovnávání výkonu izolovaně není o nic lepší. Smysluplná srovnání musí propojit cenu i výkon, aby bylo možné vypočítat určitou míru nákladů na výpočetní jednotku. V tomto příspěvku se podělím o několik svých postřehů z benchmarkingu našich cloudových serverů a dalších. Poskytnu také několik tipů pro získání užitečných výsledků a toho, co skutečně znamenají.

Důležitá upozornění

Abych to vysvětlil předem, jsem k benchmarkingu obecně dost skeptický. Zřídkakdy nabízí skutečný pohled na reálné využití. Stručně řečeno, neexistuje žádná skutečná náhrada za spuštění samotných aplikací, které hodláte na platformě používat. Pokud toho dokážete dosáhnout za rozumnou cenu z hlediska času, pak takový postup nic nenahradí.

Dalším faktorem je, jak vytížený je poskytovatel cloudu. Můžete provést benchmark cloudových serverů a získat vynikající výsledky. Ty však mohou být z velké části způsobeny mírou využití (nebo jeho nedostatkem) u daného poskytovatele. To nemusí být pozitivní znamení. Může to odrážet provozní potíže, ztracené zákazníky, minulé problémy s dostupností a spolehlivostí atd. Při interpretaci výsledků benchmarku byste proto měli u poskytovatele cloudu vždy prověřit minulé výpadky a další potenciální problémy.

Jako poslední varování: výkon není jediným faktorem, který byste měli zvážit. Nižší výkon může často odrážet robustnější (a redundantní) hardwarovou architekturu, na které je postaven. Je proto vždy důležité mít velmi jasnou představu o tom, na jaké infrastruktuře je cloud vybudován. Díky tomu můžete výsledky spravedlivě porovnat, což vám umožní učinit smysluplné rozhodnutí o nákupu.

Definujte problém

Dále v tomto příspěvku uvádím různé aspekty výkonu a to, jak nejlépe postupovat při interpretaci výsledků. Před jakýmkoli benchmarkingem je však důležité charakterizovat typ výpočtů, které budete chtít v cloudu provádět; to určí relativní důležitost různých výkonnostních metrik. Pokud například chcete umístit databázový server a ten bude podléhat intenzivnímu čtení, ale nízkému zápisu, měli byste věnovat pozornost výkonu disků v cloudu a zejména nesekvenčnímu přístupu ke čtení.

Předtím, než začnete s jakýmkoli benchmarkingem cloudových serverů, si tedy jasně definujte, co byste považovali za dobrý výkon cloudu. Měli byste určit, které aspekty jsou klíčové a mají neúměrný vliv na reálný výkon vašich výpočtů. Jakmile o tom budete mít jasnou představu, můžete se začít zabývat benchmarkingem.

Výpočetní výkon

Když se díváme na hrubý výpočetní výkon, mluvíme o CPU a RAM. Rozdíly ve výkonu na čistě výpočetní úrovni mezi cloudy ve skutečnosti nejsou tak velké. Existují však určité faktory, které způsobují skutečné rozdíly.

Zdaleka největším faktorem ovlivňujícím výpočetní výkon v cloudu je agregace (contention). Veřejné cloudy jsou sdílená prostředí (multi-tenant). RAM a úložiště nelze reálně přerezervovat (i když mohou být přeprodány), ale CPU může být a je. Úroveň agregace se značně liší, ale poskytovatelé veřejného cloudu jsou v podstatě schopni prodat kapacitu CPU fyzického hostitele na více než 100 %.

Někteří z největších poskytovatelů používají poměr sdílení (contention ratio) CPU vyšší než trojnásobný. To znamená, že celková ‘prodaná’ kapacita CPU všech virtuálních serverů na stejném fyzickém stroji může být trojnásobkem jeho skutečné kapacity CPU. Dělají to proto, že většina virtuálních serverů po většinu času nevyužívá ani zdaleka 100 % své přidělené kapacity CPU. Přesto poměry sdílení přímo ovlivňují výkonnostní testy cloudových serverů a jejich reálné využití. Pokud je sdílení vysoké (tj. při více než 200% přidělení CPU), výkon cloudového serveru se výrazně zhorší.

Zjednodušeně řečeno, pokud zatížení jakéhokoli fyzického stroje překročí hodnotu 1 na jádro, výpočetní úlohy se začnou řadit do fronty a čas, který tento virtuální stroj potřebuje k dokončení úkolu, se prodlouží. Vzhledem k tomu, že většina cloudů účtuje poplatky na základě kapacity za hodinu, má to přímý dopad na náklady zákazníků daného cloudu.

Dalším důležitým faktorem ovlivňujícím výpočetní výkon je počet jader CPU, ke kterým má virtuální stroj přístup. To sice neplatí pro všechny aplikace, ale mnoho moderních aplikací podporuje vícevláknové zpracování (multi-threading). To fakticky znamená, že aplikace a/nebo operační systém dokáže rozdělit výpočetní úlohy mezi více jader. Skvělým tipem pro zvýšení výkonu vašich výpočtů je sladění počtu vláken (tj. jader), které aplikace dokáže podporovat, s počtem jader, ke kterým má virtuální stroj přístup.

Bohužel u mnoha veřejných cloudů to není možné. Je to proto, že jejich virtualizační platformy nepodporují virtualizaci na úrovni jader CPU. Jinými slovy, každé jádro může v daném okamžiku využívat pouze jeden virtuální stroj. V cloudech, které virtualizaci jader CPU podporují, byste měli experimentovat s měněním počtu jader pro daný stroj při zachování stejné celkové velikosti CPU.

Pokud máte například 2GHz stroj, můžete se podívat, jak zdvojnásobení používaných jader ze dvou na čtyři ovlivní vaše testování. Díky tomu budou moci aplikace běžící na tomto virtuálním stroji provádět úlohy prostřednictvím čtyř jader současně. V našem případě můžete počet jader, které virtuální stroj používá, nastavit na záložce ‘pokročilé’ v modálním okně s podrobnostmi o serveru ve webové konzoli. Jen nezapomeňte před ručním přepsáním počtu používaných jader vždy zkontrolovat, jaká je standardní velikost jádra u daného poskytovatele cloudu. V našem případě je to 2,2 GHz na jádro, ale u různých cloudů se to liší.

Doporučil bych zvážit použití POV-RAY, CoreMark, Dhrystone nebo Whetstone pro testování výkonu cloudových serverů.

Úložiště: skutečné měřítko výkonu cloudových serverů

Veškerý výkon je omezen nejslabším článkem, kde vzniká úzké hrdlo. V současné době technologie v oblasti virtualizace výrazně pokročily, pokud jde o využití CPU a RAM. Například jeden fyzický stroj lze virtualizovat a provozovat na něm několik cloudových serverů s minimální ztrátou celkového agregovaného výkonu. V případě úložiště je bohužel stále co zlepšovat. Výsledkem je, že ve většině případů je výkon virtuálních serverů v cloudu určen výkonem úložného řešení daného cloudu.

Stručně řečeno, úložiště je v současné době limitujícím faktorem výkonu většiny výpočetních úloh v cloudu. Bez ohledu na to, jaké výsledky mohou pov-ray a další výkonnostní testy přinést pro čistě výpočetní úlohy, realita je taková, že rychlost, s jakou dokáže virtuální server číst a zapisovat data na fyzické disky úložiště, v současnosti určuje reálný výkon cloudového serveru.

S ohledem na to pramení skutečné rozdíly ve výkonu v cloudu, a to i s ohledem na výpočetní úlohy, spíše z rozdílů ve výkonu úložiště. Jak již bylo zmíněno dříve v tomto příspěvku, existují velmi odlišné potřeby zákazníků v závislosti na výpočetní úloze. To platí u úložiště dvojnásob. Potřebujete rychlý přístup pro čtení k velkým sekvenčním blokům dat (jako jsou streamovaná média) nebo k malým nesourodým informacím (například ve velké databázi)? Potřebujete udržet intenzivní přístup pro zápis u rychle se měnících dat, ke kterým se přistupuje periodicky ve velkých nárazech? Existuje celá řada scénářů a každý z nich bude na stejné platformě fungovat jinak.

Rozdíly ve výkonu v zásadě spočívají v architektuře. Tyto rozdíly v architektuře obvykle vyplývají z různé míry robustnosti, pokud jde o ukládání dat, jejich redundanci, a tedy i pravděpodobnost, že dojde k jejich nenávratné ztrátě. Na vysoké úrovni využívají cloudy buď centralizovaná datová řešení v podobě Storage Area Network (SAN) nebo distribuovanějších lokálních úložných řešení. V nich se úložiště nachází na každém jednotlivém fyzickém stroji.

Kvalitní sítě SAN mají ze své podstaty zabudovanou vysokou úroveň redundance. Výkon však trpí tím, že data musí být posílána ze sítě SAN přes síť do procesoru a paměti RAM virtuálního počítače pro výpočetní úlohy. V důsledku toho mají cloudy založené na SAN tendenci mít při srovnatelných parametrech nižší výkon ve srovnání s cloudy s lokálními distribuovanými úložnými řešeními. Další nevýhodou SAN je, že představuje velmi velký jediný bod selhání. Sítě SAN jsou mimořádně spolehlivé. Pokud se někdy vážně porouchají (a to se stává), pravděpodobně budete čelit velmi velkému výpadku a poškození dat.

Většina poskytovatelů cloudových služeb využívajících sítě SAN nepoužívá plně redundantní řešení pro převzetí služeb při selhání typu používaného v podnikovém prostředí, a to převážně z nákladových důvodů. Je důležité si uvědomit, že ne každá síť SAN je stejná, a zjistit si u poskytovatele cloudu, jakou úroveň redundance u svých SAN používá.

Cloudy založené na lokálním úložišti mívají dobrý diskový výkon. Často však nabízejí lokální úložiště pouze v neperzistentní formě. To není spravedlivé srovnání s perzistentním úložištěm. Dočasné úložiště nemusí být odolné proti chybám stejným způsobem jako trvalé úložiště. Pro smysluplné výsledky je vždy důležité porovnávat perzistentní úložiště s perzistentním úložištěm.

Při výběru cloudů s distribuovanými lokálními úložnými řešeními musíte také vědět, jakou mají redundanci. Pevné disky selhávají v nezanedbatelné míře, a proto je způsob ukládání kritický. Většina poskytovatelů používá nějakou formu RAID, ale existují velmi odlišné úrovně bezpečnosti. Na nejnižší úrovni máte RAID1, kde se dva disky v podstatě navzájem zrcadlí. To má obvykle dobrý výkon. Pokud však jeden disk selže, jsou data až do okamžiku, než náhradní disk zkopíruje všechna data ze starého disku, vystavena riziku úplné ztráty, pokud selže i druhý (silně zatížený) disk. Během jakékoli obnovy pole RAID1 bude navíc výkon disku pravděpodobně mnohem nižší než obvykle.

Mnoho poskytovatelů proto používá RAID5 (odolný proti selhání jednoho disku) nebo RAID6 (odolný proti selhání dvou disků). RAID6 nabízí zdaleka nejbezpečnější řešení pro lokální úložiště, ale nese s sebou velkou penalizaci výkonu. Náš přístup spočívá v použití RAID6, ale v kombinaci se špičkovými hardwarovými řadiči RAID. Ty mají velké vyrovnávací paměti a jsou zálohovány baterií. Námi používané řadiče RAID jsou ve skutečnosti výrazně dražší než celá disková pole. Díky tomu můžeme poskytovat výkon srovnatelný s mnohem méně odolnými konfiguracemi a zároveň stále nabízet velmi robustní bezpečnostní síť úložiště RAID6. Přečtěte si více o naší cloudové infrastruktuře, o jejímž nastavení mluvíme velmi otevřeně.

Doporučuji použít IOzone nebo Bonnie++ pro testování výkonu disků.

Při interpretaci výsledků benchmarků úložiště se proto ujistěte, že máte k dispozici také následující informace:

  • jakou architekturu úložiště cloud využívá (lokální, SAN, jinou)?
  • jaká opatření pro převzetí služeb při selhání (fail-over) a redundanci jsou pro data zavedena?
  • je úložiště, které testuji, dočasné nebo trvalé?

Spojení odpovědí na tyto tři otázky s výsledky benchmarkingu vám poskytne poměrně dobrý přehled o skutečném výkonu úložiště.

Síťové připojení

Určení a měření výkonu sítě je výrazně přímočařejší než v případě výpočetního výkonu a výkonu disků. Výkon sítě má dva klíčové aspekty: latenci a šířku pásma.

V závislosti na vašich potřebách může, ale nemusí být latence sítě poskytovatele cloudu důležitá. Pokud cloud využíváte pro převážně samostatné operace, je nepravděpodobné, že by latence byla prioritou. Pokud však provozujete aplikace v reálném čase, které komunikují s vnějším světem mimo cloud, pak bude latence kritickým faktorem určujícím výkon.

Většina latence obvykle vyplývá z čistě fyzické vzdálenosti. Například většina latence mezi Londýnem a San Franciskem je ve skutečnosti čas, který světlo potřebuje k překonání této vzdálenosti. Rozdíly v latenci jsou dány různou efektivitou zvolené trasy. To je aspekt, který se u jednotlivých cloudů liší. Efektivita trasy je přímým důsledkem poskytovatelů sítě, ke kterým má cloud přímé připojení. K tomu dochází buď odběrem IP konektivity od nich, nebo prostřednictvím peeringu. Při zkoumání latencí můžete jednoduše pingnout svůj cloudový server a zjistit jeho výkon. Je však důležité zjistit výkon mezi vašimi skutečnými koncovými uživateli a vaším cloudovým serverem.

Pokud se většina vašich uživatelů nachází v jedné geografické oblasti nebo pokud bude přístup probíhat především z centrály vaší společnosti, je důležité otestovat výkon z těchto lokalit. Komerční služby, jako je Pingdom nabízejí nákladově efektivní způsob, jak současně zjišťovat latenci z velkého množství obecných lokalit po celém světě.

Skutečná šířka pásma, kterou může váš cloudový server dosáhnout, je také velmi důležitá. Na rozdíl od tradičnějších hostingových řešení mají poskytovatelé cloudu tendenci účtovat poplatky v závislosti na celkovém objemu přenesených dat. Jinými slovy, platba nezávisí na čase, jako je tomu u platby za Mbit, která vám poskytuje fixní úroveň konektivity 24/7. Navzdory tomu mnoho poskytovatelů cloudu šířku pásma pro jakýkoli virtuální server ‘omezuje’. Pro uživatele to bude neviditelné, dokud na tuto bariéru nenarazíte. Pokud máte profil šířky pásma s velkými výkyvy, mohl by to být důležitý výkonnostní faktor, který je třeba vzít v úvahu.

Chcete-li otestovat skutečnou šířku pásma vašeho cloudového serveru, je důležité zkusit stáhnout data do cloudového serveru ze zdroje, který na své straně rychlost přenosu nijak neomezuje. Často zjišťuji, že skvělým způsobem, jak zjistit dostupnou rychlost, je stáhnout velký soubor od významného dodavatele, jako je MicrosoftUbuntu nebo ještě lépe aktualizací operačního systému. Tím se obvykle stahuje mnoho různých souborů z různých míst současně. Získáte tak docela dobrou představu o rychlosti vašeho připojení.

Často stahuji Fedora live CD z jejich hlavního webu jako standardní test, ale měli byste experimentovat minimálně s několika různými soubory a umístěními. Pokud trváte na tom, že chcete mít vlastní velmi rychlou firemní síť, možná budete chtít místo toho stáhnout soubor z cloudového serveru do vlastní sítě jako test.

Nyní do hodnocení výsledků opět zahrňte cenu

Pomocí výše uvedených metod byste měli získat dobrou představu o tom, jak si vedou různí poskytovatelé cloudových serverů. Dále byste měli vědět, na které aspekty se zaměřit, jež jsou pro vaše konkrétní potřeby nejdůležitější.

Posledním krokem je přidání cenové dimenze k výsledkům srovnávacích testů. Pro toto neexistuje žádný vzorec. Závisí to na relativním výkonu různých aspektů uvedených výše, které určujete vy. Pokud jeden cloud poskytuje o 40 % vyšší výkon (jak určíte vy), ale je pouze o 30 % dražší, pak samozřejmě vypadá atraktivně. Podobně, pokud potřebujete velkou šířku pásma, může být nižší výpočetní výkon přebit konkurenčním cenovým plánem pro přenos dat. Klíčem ke správnému rozhodnutí je zohlednit všechny tyto různé faktory.

Závěrem by mělo být srovnávání výkonu součástí širšího procesu určování, které cloudové servery jsou pro vás ty pravé. To by mělo zahrnovat i další aspekty. Mezi ně mohou patřit například smlouvy o úrovni služeb, otázky závislosti na datech či poskytovateli (lock-in), fyzické umístění a právní jurisdikce. Spojením všech těchto aspektů se dostanete do pozice, kdy budete moci učinit správnou volbu poskytovatele cloudových služeb.

author

Patrick Baillie

Autor · CloudSigma

Preslav Dobrev je kreativní designér ve společnosti CloudSigma, který se zaměřuje na konzistentní firemní identitu prostřednictvím tradičních i inovativních marketingových kanálů. Je zdatný v propojování umělecké vize se strategickým marketingem za účelem vytváření působivých příběhů značky.

Komentáře

Zatím žádné komentáře. Buďte první.