EPYCká case study: Servery DELL 15. generace opět s AMD

15
EPYCká case study: Servery DELL 15. generace opět s AMD

O tom, že AMD začíná tlačit na Intel, se píše mnoho článků. Tento fakt dělá radost i zarytým fandům Intelu, protože Intel pod tlakem zlevňuje. Nyní se procesory AMD EPYC druhé generace dostaly do patnácté generace serverů DELL PowerEdge.

Z řady recenzí vychází procesory AMD EPYC dobře a oproti srovnatelným protějškům u Intelu jsou řádově o desítky procent levnější. Což uvítají hlavně naši zákazníci při nákupu serverů. Na druhou stranu občas slýcháme „historky“, že se pro nějaké použití nehodí (např. databáze).

Naším cílem bylo zjistit skutečný potenciál těchto serverů s AMD a rozhodnout se, zdali je doporučit našim zákazníkům, či nikoliv. Od našeho partnera, společnosti DNS a.s., jsme dostali k otestování jeden z prvních Dell serverů 15. generace s procesorem AMD, který se ocitl v ČR.

Já osobně jsem měl poslední CPU od AMD v herním počítači na střední škole (Athlon 2500+ Burton @3200+). Stejně tak k dnešnímu datu máme všechny servery u našich zákazníků s procesory Intel. A asi se moc nespletu, když si myslím, že jsme na tom všichni podobně. 😊 Na testování jsem se proto velice těšil.

Nejčastější bottlenecky na CPU

Předtím, než našim zákazníkům doporučíme nějaké serverové řešení, provádíme důkladné měření jejich prostředí. Cílem je optimalizovat finanční prostředky. Chceme, aby zákazník pokryl své potřeby, avšak zbytečně nepřeplácel, ale ani nešetřil na nesprávném místě. Tím, že změříme, jak se jeho systémy chovají a kde mají z pohledu výkonu úzká hrdla (bottleneck), můžeme dopředu předpovědět a garantovat, o kolik se zrychlí práce jeho zaměstnanců v informačních systémech.

Srdcem každého serveru je duet CPU-RAM a jeho spolupráce s ostatními komponentami jako jsou SSD disky, síťové karty a ostatní PCIe zařízení. Co se týče CPU, nejčastěji se setkávám se 4 druhy bottlenecků:

  • První a nejčastěji omezující je „single thread performance“. Velká část programů stále není napsána tak, aby dokázala rozdělit 1 výpočetní problém na více CPU jader. V takovém případě je výkon přímo úměrný frekvenci procesoru (určitou roli hraje i architektura) a jediné co vás zde může zachránit, je nákup procesorů s vysokou frekvencí.
  • Příliš vysoká celková zátěž – vzniklá velkým počtem uživatelů, velkým počtem virtuálních serverů na jednom hypervizoru či prostě jen programy, které využívají (ať už efektivně, či neefektivně) výkon více jader. Zde pomůže CPU s více jádry.
  • Třetí scénář, který vídám, je nedostatečná rychlost komunikace mezi pamětí a CPU. Intel má 6kanálový řadič. Abyste dosáhli nejvyššího průtoku dat do/z operační paměti, musíte rovnoměrně osadit všech 6 kanálů. RAM tedy do serveru kupujete nejenom kvůli celkové kapacitě, ale také kvůli rychlosti, s jakou jste do ní schopni ukládat/číst data. Toto je typické pro High Performance výpočty. V RAM máte například matici o velikosti pouze 10 GB, ale to, jak rychle budete počítat numerickou simulaci, je přímo závislé na propustnosti sběrnice.
  • Nakonec jsou zde latence přístupu do paměti. Zde z měření vídám, že servery s jedním socketem jsou na tom lépe než víceprocesorové systémy. Procesory určené pro single-socket nemají řadiče paměti, které musí počítat s mezi-procesovou komunikací, NUMA architekturou a jsou tak jednodušší/rychlejší.

Proč nestačí porovnat frekvenci a počet jader

Až do této chvíle, kdy jsem testoval pouze procesory Intel, byla moje metodika celkem jednoduchá. V rámci stejné architektury je výkon přímo úměrný frekvenci. Osazení RAM stačí v podstatě pouze „nepokazit“ (tzn. vždy osadit rovnoměrně všechny paměťové kanály 😊).

Pokud jsem chtěl odpovědět zákazníkovi na otázku „O kolik bude jeho nový server rychlejší než jeho 6 let starý?“, benchmarky za mě odvedly práci v počítání mezigeneračního rozdílu. Tedy faktu, že se zvyšuje kromě frekvence procesoru i výkon na jednotku frekvence. Toto testování nám mimo jiné slouží hlavně proto, abychom po nákupu a instalaci nového serveru ověřili jeho reálný výpočetní výkon, tedy správné nastavení firmware atd.

AMD má však odlišnou architekturu. Trochu mi to připomíná atletický víceboj, kde se výsledky jednotlivých disciplín přepočítávají na body. Do této chvíle se atleti rovnoměrně zlepšovali ve všech disciplínách každým rokem. Nyní se do závodu přihlásili závodníci jiného kontinentu, kteří sice nedohodí oštěpem tak daleko, kladivo neuzvednou, ale zato mají mnohem lepší výsledky ve vytrvalosti a skoku do výšky. Najednou se může stát, že celkové bodové hodnocení může být shodné, přestože jsou velké rozdíly v jednotlivých disciplínách. 😊

Při porovnání Intelu a AMD vám syntetické testy odpoví na otázku, který procesor je lepší pro určitou disciplínu. Vy však budete muset odpovědět na otázku, z jakého typu zátěže se vaše konkrétní prostředí skládá. To v podstatě znamená identifikovat, jak se chovají všechny jednotlivé aplikace. V praxi dost časově náročné. Takže se zaměříte na ty softwarové nástroje a výpočetní úlohy, které jsou pro konkrétního zákazníka dominantní.

Po přečtení mnoha recenzí a pár studií jsem si vytvořil následující očekávání ohledně AMD EPYC 2. generace:

  • AMD EPYC bude rychlejší v úlohách, které využívají celkovou propustnost mezi CPU a RAM
  • AMD EPYC bude pomalejší v single thread výkonu než nejvýkonnější procesory Intel
  • AMD EPYC bude horší v SQL výkonu než Intel
  • AMD EPYC bude levnější při shodném výpočetním výkonu

Jak jsme měření prováděli

Protože srovnávacích syntetických testů je plný internet, rozhodl jsem se pro srovnávací studii z praxe. Požádali jsme 4 naše zákazníky, aby si připravili pro ně typickou výpočetní úlohu. Tu jsem nejprve změřil na jejich serverech s procesory Intel a následně na zapůjčeném serveru Dell PowerEdge R7515 s procesorem AMD EPYC 2. generace.

Na zapůjčený server jsem vždy přenášel celé virtuální servery (Hyper-V), měření jsem několikrát opakoval a měřil jsem mimo pracovní dobu zákazníka. Od našeho partnera jsme měli zapůjčený následující server…

Zapůjčený server: DELL PowerEdge R7515, procesor AMD EPYC 7302P 16 jader 3.0 Ghz, 128 GB RAM (8 kanálů x 16 GB), SSD 960 GB read intensive. Firmware nastaven na performance profil, reálná frekvence díky Dell Controlled Turbo 3256 MHz a zakázán přechod do úsporných C stavů.

Parametry CPU a RAM
Obrázek 1 Parametry CPU a RAM – zapůjčený server – aplikace HWiNFO64
Syntetický test RAM
Obrázek 2 Syntetický test RAM – zapůjčený server – aplikace MLC (Memory Latency Checker)
Syntetický test CPU – zapůjčený server – aplikace userbenchmark.com
Obrázek 3 Syntetický test CPU – zapůjčený server – aplikace userbenchmark.com

Zákazník 1 – High performance computing

První zákazník se specializuje na fyzikální výzkum, konkrétně numerické simulace. Nedávno jsme pro něj prováděli výkonové měření. Měli numerickou simulaci, jejíž výpočet trval na jednom jádru zhruba 40 minut, na dvou jádrech 20 minut, na čtyřech jádrech rovněž 20 minut. 😊 Cílem bylo přijít na to, proč se výpočet dále nezrychluje.

Výsledkem studie bylo zjištění, že na každé výpočetní jádro bylo nutné mít bandwith do operační paměti zhruba 9000 MB/s, přitom celá úloha zabírala v RAM pouze 7 GB. Na jejich čtyřjádrovém serveru 3,6 Ghz s 16 GB RAM se úloha již nezrychlovala, protože měli osazené pouze dva paměťové kanály. SSD disky serveru byly bez zátěže.

Tehdy jsme jim, přesunem na vhodně navržený server DELL R640, dokázali urychlit výpočet až na čas „necelé tři minuty“ (přesně 165 sekund), kdy došlo k úplné saturaci paměťové sběrnice daným typem zátěže při cca 118 500 MB/s. Byl jsem zvědavý, jak si s tímto typem zátěže poradí zapůjčený server s AMD, protože jeho paměťová sběrnice je jinak navržená.

Očekávání jsem měl nastavená vysoko díky skvělé prezentaci Drew Gallatina z Netflixu na EuroBSDcon 2019. Jejich závěr, co se týče paměťové propustnosti, byl, že jeden procesor AMD EPYC je pro jejich potřeby téměř stejně výkonný jako dva Intely. Navíc za pouhou čtvrtinu jejich celkové ceny.

Zákazníkův server: DELL PowerEdge R640, procesor 2x Intel Xeon Gold 6244 8 jader 3.6 GHz, 192 GB RAM (12 kanálů x 16 GB), SSD 1,92 TB read intensive. Firmware nastaven na performance profil, reálná frekvence díky Dell Controlled Turbo 4,28 GHz, je zakázán přechod do úsporných C stavů.

Parametry CPU a RAM – zákazník 1 – aplikace HWiNFO64
Obrázek 4 Parametry CPU a RAM – zákazník 1 – aplikace HWiNFO64
Syntetický test RAM – zákazník 1 – aplikace MLC (Memory Latency Checker)
Obrázek 5 Syntetický test RAM – zákazník 1 – aplikace MLC (Memory Latency Checker)
Syntetický test CPU – zákazník 1 – aplikace userbenchmark.com
Obrázek 6 Syntetický test CPU – zákazník 1 – aplikace userbenchmark.com

Zákazníkův VM jsem obnovil na zapůjčený server a pustil jsem se do měření. Do grafu níže jsem zanesl vliv počtu jader na délku trvání výpočtu jak pro procesor Intel (zákazníkův server), tak AMD (zapůjčený server).

Finální čas trvání úlohy na zapůjčeném serveru (AMD) byl 182 sekund. Stejná úloha na zákazníkově serveru (2x Intel) trvá 165 sekund. To je sice o 10 % déle, avšak při zhruba osminové ceně za procesor (zhruba – Intel 2x 80.000 Kč, AMD 1x 20.000 Kč)!

Potvrdilo se tak moje očekávání. AMD má zde svojí architekturou jasně navrch. Nutno však říct, že tato výpočetní úloha nebyla náročná ani na frekvenci procesoru, ani na SSD disky. Bottleneck zde byl průtok dat mezi CPU a operační pamětí, což je ale u podobných výpočetních úloh běžné. Při návrhu nového serveru bychom u tohoto zákazníka určitě sahali po AMD EPYC.

Porovnání délky výpočtu úlohy – zákazník 1
Obrázek 7 Porovnání délky výpočtu úlohy – zákazník 1

Zákazník 2 – Vývojářská firma

Druhy zákazník je vývojářská firma, které provozujeme hypervizor pro jejich vývojové prostředí. Jedná se o konfiguračně shodný server jako u zákazníka 1. Tato konfigurace je moje oblíbená díky vysokému single-thread výkonu. 😊

Měřená úloha je statická analýza PHP kódu, která probíhá na linuxovém serveru. Zákazník tuto úlohu vybral, protože jej při práci brzdí nejvíce. Zjistil jsem, že každá taková analýza jednoho projektu naplno vytíží jedno jádro na maximum, průtok do RAM je zanedbatelný a SSD disky rovněž nic nedělají. Naprosto výstavní ukázka single-thread zátěže.

Ukázka vytížení jádra v nástroji Performance Monitor – zákazník 2
Obrázek 8 Ukázka vytížení jádra v nástroji Performance Monitor – zákazník 2

Moje očekávání bylo, že zde musí Intel jasně dominovat. Procesor Intel Xeon Gold 6244 je nejrychlejším osmijádrem vůbec. Standardně procesor operuje na své základní frekvenci 3,6 GHz. Díky technologii Dell Controlled Turbo operuje stabilně na 4,28 GHz.

Zákazník vybral konkrétní statickou analýzu a na svém Intel serveru provedl 6 po sobě jdoucích identických měření. My jsme jeho virtuální server přesunuli na AMD a provedli jsme stejnou analýzu. Výsledky jsou následující:

  • 2x Intel Xeon Gold 6244 – průměrný čas běhu úlohy 106,4 sekund
  • 1x AMD EPYC 7302P – průměrný čas běhu úlohy 124,2 sekund
2x Intel Xeon Gold 6244 (vlevo) vs. 1x AMD EPYC 7302P (vpravo)
Obrázek 9 2x Intel Xeon Gold 6244 (vlevo) vs. 1x AMD EPYC 7302P (vpravo)
Čas nutný ke statické analýze PHP kódu – zákazník 2
Obrázek 10 Čas nutný ke statické analýze PHP kódu – zákazník 2

Potvrdilo se očekávání, že Intel bude rychlejší. Domníval jsem se však, že rozdíl bude výraznější. Protože, když se podíváme na syntetický benchmark Geekbech5, vidíme, že Intel je v mnoha disciplínách výkonnější větším poměrem.

Zde se však vracím zpět k těm disciplínám, jak jsem psal na začátku článku. Při návrhu serveru musíme znát druh zátěže zákazníka. Například ve floating point operacích je výkon obou procesorů blízký – což je právě hlavní zátěž u našeho zákazníka (resp. této úlohy).

Zároveň nesmíme zapomenout, že porovnáváme 2x 8jádrový procesor Intel proti 16jádrovému procesoru AMD na nižší frekvenci s nižší cenou. Zde mě proto výsledek AMD velice příjemně překvapil.

Porovnání AMD EPYC 7302P a Intel Xeon Gold 6244 ve syntetických testech.
Obrázek 11 Porovnání AMD EPYC 7302P a Intel Xeon Gold 6244 ve syntetických testech.

Odbočka k Intel Turbo a Dell Controlled Turbo

Tyto technologie jsem již v článku zmínil, ale zatím nevysvětlil. Obě technologie slouží k vytažení extra výkonu z procesorů. Každá na to jde ale trochu jinak.

Například procesor Intel Xeon Gold 6244 standardně operuje na frekvenci 3,6 GHz. Díky technologii Intel Turbo dokáže krátkodobě svoji frekvenci zvýšit až na 4,4 GHz, dokud se teplotní koeficient TJMAX nepřiblíží mezní hodnotě.

Výhodou Intel Turbo je krátkodobý vysoký výkon. Nevýhodou je tzv. „jitter“, neboli neustále přepínání násobičů sběrnic a frekvence podle zátěže. Procesoru tak vždy trvá nenulový čas, než se na maximální výkon z klidového stavu dostane. Obzvláště, když jsou ještě defaultně povoleny úsporné C stavy.

Dell se svou technologií Dell Controlled Turbo dělá obdobné, jen trochu jinak. Procesor nastaví na maximální možnou frekvenci, po kterou se uchladí. Tato frekvence se různí podle modelu, vždy je vyšší než základní frekvence a vždy je nižší než maximální frekvence Intel Turbo.

Konkrétně u procesoru Intel Xeon Gold 6244 je trvalá frekvence Dell Controlled Turbo 4,28 GHz a „dočasná“ frekvence Intel Turbo 4,4 GHz. Rozdíl je zde minimální, zejména protože se jedná o dobře vyrobené osmijádro, které se lépe uchladí. U AMD EPYC 7302P je základní frekvence 3.0 GHz a trvalá frekvence DCT 3,256 GHz.

Zákazník 3 – IS Helios a SQL

Třetím zákazníkem je strojírenská firma využívající Helios ve spojení s SQL serverem. I zde máme identický server jako u prvního zákazníka. Náš zákazník má dlouhodobé problémy s optimalizací Heliosu, který má moduly vyvíjené na míru. Zákazník sice tlačí na dodavatele kvůli optimalizaci Heliosu na úrovni architektury software, ale dodavatelská firma nestíhá ani implementaci nových funkcí, natož optimalizaci rychlosti. To je bohužel častý scénář, který v praxi vídám napříč informačními systémy.

Zákazník si připravil 3 úlohy, které se každý den často opakují a stojí ho čas. Ty jsme opět změřili na jeho i zapůjčeném serveru. Očekával jsem, že Intel bude rychlejší hlavně díky lepšímu single threadu. K mému překvapení vyšlo o trochu lépe AMD, což nedávalo smysl.

Změřil jsem vše ještě jednou, avšak s větším počtem sledovaných ukazatelů. Zjistil jsem, že během měření SQL server vytěžoval všechna jádra CPU, ovšem ne na maximum. Byly zde vidět zápisové operace na SSD disky, takže mé podezření padlo právě na ně.

Průběh CPU zátěže s AMD – zákazník 3
Obrázek 12 Průběh CPU zátěže s AMD – zákazník 3

Změřil jsem výkon SSD disků na zákazníkově i zapůjčeném serveru. Zákazníkův Intel server má sice větší SSD s lepším sekvenčním zápisem i čtením a také zvládnou více celkových 4k IOPS, ale SSD v AMD zvládají o něco lepší výkon při 4k IOPS v single-thread zápisu/čtení.

Porovnání naměřených rychlostí u SSD obou serverů
Obrázek 13 Porovnání naměřených rychlostí u SSD obou serverů

Abych co nejvíce vyloučil vliv SSD, vytvořil jsem na AMD serveru RAM disk a přesměroval do něj TEMP DB. Časy úloh se ještě zrychlily. Objevila se zde zvýšená zátěž jednoho jádra. Ve skutečnosti zde byla i předtím, pouze nebyla tak výrazná.

Oproti stávajícím SSD diskům bychom tedy další urychlení pravděpodobně získali NVMe disky s lepší latencí zápisu. To by ale výrazně prodražilo celý server. Konečný bottleneck by pak mohla být zmíněná single threadová zátěž, která je pravděpodobně odpovědná za část operací s daty a podléhá návrhu dané úlohy v Heliosu.

Místo toho, abych zde porovnal procesory, jsem vlastně zjistil, v čem je skutečný problém. Obě CPU dokázaly dodat dostatečný výkon, aby se projevil bottleneck jinde. Praxe. Zákazníkovi by, podle tohoto zjištění, stačil výrazně levnější AMD server či Intel server s levnějšími a méně výkonnými procesory. Z výkonu CPU Intel Xeon 6244 by v této úloze dokázal těžit až při snížení latencí úložiště.

Průběh CPU zátěže s AMD a RAM diskem pro TempDB – zákazník 3
Obrázek 14 Průběh CPU zátěže s AMD a RAM diskem pro TempDB – zákazník 3
Výsledné časy Intel vs. AMD – zákazník 3
Obrázek 15 Výsledné časy Intel vs. AMD – zákazník 3

Zákazník 4 – Money S5 a SQL

Zákazník má 3 roky starý server, který slouží jako hypervizor pro více VM. V rámci jednoho VM provozujeme Money S5 nad MS SQL s business inteligence modulem. V Money S5 a BI je několik úloh, které trvají delší dobu a jejich zrychlení by zákazník uvítal. Nás zajímalo, o kolik by se vše zrychlilo „pouhou“ výměnou serveru za ten zapůjčený.

Zákazníkův server: DELL PowerEdge R530, procesor 2x Intel Xeon E5-2620 v3 6 jader 2.4 GHz, 96 GB RAM (5x 16 GB), SSD 1,92 TB read intensive. Firmware nastaven na performance profil, reálná frekvence díky Dell 2.54 GHz, je zakázán přechod do úsporných C stavů.

Parametry CPU a RAM – zákazník 4 – aplikace HWiNFO64
Obrázek 16 Parametry CPU a RAM – zákazník 4 – aplikace HWiNFO64

Typ zátěže u úloh, které si vybral zákazník, je kombinovaně single thread a multi thread a bottleneck je procesor. Pouhou výměnou serveru se čas potřebný k dokončení úloh zkrátil průměrně o 30 %, což není špatné. Procesor Intel Xeon E5-2620 v3 je samozřejmě starší stejně jako server Dell 13. generace. Nicméně je příjemné vidět, že v případě obnovy serveru si může zákazník vybrat levnější jednosocketový server a zároveň získat vyšší výkon (cca o 42 %).

Výsledné časy Intel vs. AMD – zákazník 4
Obrázek 17 Výsledné časy Intel vs. AMD – zákazník 4

Zhodnocení

Nová platforma procesorů AMD EPYC v serverech DELL mě velice příjemně překvapila. Pro výpočty závislé na propustnosti RAM je to jasný vítěz nad Intelem. Za mnohem nižší pořizovací náklady dostanete vyšší výkon. Stejně i pro klasické použití je to velice všestranný procesor za dobré peníze.

Intel stále zůstává jedničkou, pokud budete potřebovat nejvyšší výkon na single-thread. Např. pokud máte software optimalizovaný pro AVX 512 instrukce, je Intel mnohem výkonnější volbou.

Který procesor je tedy vítězem? Bohužel neexistuje jeden univerzální vítěz. Pro každého zákazníka to bude jiný výrobce i model. Při návrhu serveru je klíčové správně identifikovat zátěž (workload) zákazníka. Porozumět, jak se jeho softwarové nástroje chovají, a umět je exaktně změřit. Stejně tak je důležité vše změřit po nasazení serveru. Je nutné si ověřit, že server podává očekávaný výkon. Nevhodné nastavení serveru, chyba v ovladačích nebo jiná nekompatibilita dokáží server zpomalit na polovinu.

Nás i naše zákazníky však nové servery Dell PowerEdge s AMD EPYC druhé generace zaujaly natolik, že se nám již tři kusy vyrábí. Po 15 letech jsem tedy znovu objednal CPU z dílny Advanced Micro Devices.

Líbí se vám témata, o kterých píši?

Abyste nemuseli kontrolovat, jestli už vyšel nový článek, rád vám ho ihned po zveřejnění pošlu do e-mailu. Každý kontakt, který mi poskytnete, si nechám vždy jen pro sebe.

  1. Martine paráda, díky za test a hlavně za jeho praktické zaměření. Jiné „renomované“ weby se do tohoto srovnávání moc nehrnou. Jsem rád že se ledy pohnuly a už i Dell dodává servery s AMD. S touhle vítanou konkurencí se nám trh i výkon po dlouhé době pohne tím správným směrem 🙂

  2. Prezentaci AMD na Dellu jsem viděl a taky jsem byl velmi příjemně překvapený. A i záležitost s SQL performance byla zástupci Dellu zmíněna. Dle vašeho testu to jen potvrzuje, že se konečně intelu vyrovnává soupeř a v něčem ho i předbíhá. A za dobrou cenu. To je ve výsledku pro zákazníka to nejlepší 😉

  3. No nedávno jsme zakoupili 3 stroje Dell R640 s Xeony Gold 6244, právě kvůli výkonu v single threadu. Nicméně ani u nás není situace úplně černobílá a některé simulace umí využít více jader.
    Ale třeba teď koukám do kernel logu:

    CPU15: Package temperature above threshold, cpu clock throttled (total events = 132)

    Takže by bylo zajímavé jak by se s tím popral EPYC. Pokud se nemýlím tak je to procesor pro vícesoketové stroje, takže škoda že jste neudělali srovnání se strojem kde by byly dva tyto procesory.

    My jsme uvažovali o AMD Ryzen (právě kvůli frekvenci) ale nedokázali jsme najít stroj kam by se dalo dát víc než 64Gb RAM.

    Ale určitě zajímavý článek, díky za něj!

    • Díky za komentář.

      U té chyby ‚CPU15: Package temperature above thre…‘ se jedná o to, že se CPU přehřívá a tudíž si snižuje frekvenci. Koukněte, jestli nemáte aktivní Intel Turbo Boost a kdyžtak to zkuste přehodit na Dell Controller Turbo – jak se o tom kolega zmiňuje v článku. Frekvenci, kterou si to nastaví by měl být server schopen uchladit (pokud je máte v klimatizované místnosti). Teoreticky by se Vám mohly zrychlit i ty úlohy – díky stabilní frekvenci. Dejte pak vědět, docela by mne to zajímalo, jestli to pomohlo, nebo ne.

      Právě, tím, že EPYC má zpravidla více jader na jedno CPU než Intel. Tak na náhradu dvousocketového Intelu nám stačí jednosocketový AMD. Ve výsledku pak server může být zase trochu levnější (z mého pohledu jsou jednosocketové servery technologicky jednodušší).

      AMD Ryzen jsou desktopové CPU, je možné že to výrobce limituje schválně. Krom toho mají i jinou architekturu – bylo by ideální si to na jednom zkušebním PC ověřit :).

      Martin

      • Tak jsem to vyzkoušel přehodit na „Dell controlled Turbo“ a moc to nepomohlo – hlášky se objevují stále. Nicméně se zdá (možná je to ale jen subjektivní pocit), že je server tišší, tj že tolik nevytáčí větráky na maximum.

          • No co mě trápí by se dalo shrnout do několika bodů:
            1. jestli je CPU dobře využito. Bohužel ani poslední verze jádra pro RHEL-7 stále nedisponuje podporou (modul intel_pstate) procesorů 6244, tzn nevidím aktuální takt hodin. Tady nezbývá než počkat. SW viz výše je jen pro Win.
            2. jestli se vyplatí mít hyperthreading zapnutý nebo ne. Dělali jsme před lety testy a tam to vypadalo těsně pro zapnutý HT.
            3. Jestli pro pro běžící úlohy definovat natvrdo CPU affinity (např pomocí kontrolních skupin) nebo věřit kernel scheduleru, že přiřazení CPU jader k procesům udělá lépe.
            4. Je tu také otázka memory cache na procesoru jejíž velikost dovede udělat divy.

            Bohužel simulační SW co používáme se vyvíjí stejně CPU a je časově dosti náročné zjistit jaká přesná kombinace všech faktoru výše je optimální a do jaké míry se vyplatí uvažovat třeba o přechodu na AMD.

  4. Článek jsem nijak moc nečetl, ale proč je AMD EPYC 7302P na obrázku 16/16, když je 16/32?? Taky by se mohla zmínit spotřeba, k tomu dlouhodobá zátěž a udržené frekvence.

    • Na to, že jste to jen prolétl, máte dobrý postřeh. Počet 16/16 je proto, že byl na serverech vypnutý SMT/HT. Bylo to tak i u ostatních serverů (až na ten poslední). U některých zákazníků (v případě Hyper-V hostů) to tak máme nastavené, kvůli jednoduššímu ladění a bezpečnosti – zároveň máme u těchto zákazníků naměřené, že dopad na výkon je v řádu nízkých jednotek procent. Měli jsme tuto skutečnost v článku uvést, ale zapomněli jsme na to.

      Udržitelná frekvence u AMD na daném serveru byla 3256 MHz skrze Dell Controlled Trubo a spotřebu jsme nesledovali. Určitě by bylo zajímavé otestovat po jak dlouhé zátěží by se frekvence snížila i v korelaci s okolní teplotou, stejně tak započítat do celkové ceny (nákladů) i příkon serveru. Zkusíme něco naměřit při příštích testech… ale znáte to, věcí co dělat je hodně a času je přitom málo :).

  5. Konečně nějaký dobrý článek, velmi za něj děkuji. Klidně jich může být do budoucna i více 🙂

    Jinak zaujal mě především test pro SQL Heliosu (mimochodem struktura této databáze je fakt hrozná). Chtěl bych se jen ujistit, že výsledky chápu správně, protože náhodou zrovna řeším podobný problém.

    Podle popisu jsem pochopil, že počet jader procesoru není v tomto případě až tak zásadní a spíše by měl server těžit z vyššího taktu. Dalo by se tedy říci, že pokud bychom srovnali například EPYC 7262 (3,2GHz, 8C/16T) se zde testovaným EPYC 7302P (16C/32T), dostali bychom se na podobná čísla?

    Druhá věc, docela mě překvapil vyšší výkon AMD při 4k IOPS v single r/w, i když Intel je co se základní frekvence lepší. Možná by stálo někdy do budoucna udělat test, zda skutečně Intel dokáže z rychlejšího uložiště těžit.

    • Díky za pochvalu.

      Co se týče Heliosu, tak je to o tom si změřit sestavy/dotazy co trvají/zdržují nejvíce. Bez toho se nedá říct jestli vás trápí celková výpočetní síla, nebo single thread. Dále je lepší SQL dotazy optimalizovat na úrovni dotazu, než to „umlátit“ výkonem – dá se tím dosáhnout řádových zlepšení.

      Pokud by byl bottleneck na single thread, pak by vámi zmiňovaný procesor EPYC 7262 měl být i o chlup rychlejší (řádově procenta, záleží jakou frekvenci dokáže stabilně udržet).

      U výkonu ohledně IOPS myslíte disky? Tam si myslím, že je rozdíl dán jiným SSD diskem, než že by to záleželo na CPU.

    • Zdravím Vás a děkuji,
      ano EPYC 7262 (3,2GHz, 8C/16T) bude o něco rychlejší v singlethreadu než 7302p, ale jen nepatrně – přímo úměrně rozdílu ve frekvenci a to je cca 100 – 200 MHz.
      V tom SQL testu právě nebyly úplně shodné SSD disky, proto ten rozdíl. Nakonec jsem přesměroval TEMP DB do RAM disku abych vyloučil co možná nejvíce vliv úložiště, což je i konečná konfigurace po tomto testu, jak to máme nastaveno u zákazníka. Bylo by samozřejmě zajímavé zde vyzkoušet NVMe disky pro celý VM. Popravdě tohle by bylo na samostatný článek na testování disků 🙂 Doporučuji Vám ale otestovat Váš Helios s RAM diskem na TEMP DB, zvláště pokud například SSD v serveru ani nemáte.

  6. Naozaj vynikajúce a hlavne praktické testy z reálneho prostredia, žiadne syntetiky na vymyslených úlohách. Super, že ste si s tým dali námahu, a tak sa môžu inšpirovať aj ostatní.
    Rád by som sa spýtal:
    1. na konkrétnejšie dôvody (ak nie sú tajné), prečo máte vypnutý SMT/HT na Hyper-V hostoch „kvůli jednoduššímu ladění a bezpečnosti“?
    2. aký softvér ste použili na RAM disk u Zákazníka 3?

Napsat komentář