Megatest různých konfigurací RAM s AMD EPYC 7402 CPU v režii Supermicro
Kapitoly článků
Zapojení pamětí v serverech je tak trochu věda. Ale jen trochu, v podstatě se lze řídit pravidlem, že vždy je dobré každému procesoru osadit všechny paměťové kanály pro optimální výkon. Bohužel ne vždy se teorie setkává s praxí. Velmi často je možné narazit na prapodivné konfigurace, které nedávají smysl(například dvousocketový server, kde je RAM osazena jen u jednoho procesoru), či mohou být limity na straně rozpočtu, licencování a tak podobně.
Jelikož řeším servery relativně často, tato problematika mně samozřejmě zajímá a chtěl jsem otestoval, jaký vliv na výkon mají různé konfigurace RAM s nějakým AMD EPYC procesorem, jelikož EPYCy mají typicky osmikanálový paměťový řadič, většina serverů s EPYCy podporuje i dva paměťové moduly připojené na jeden kanál, což znamená, že máme k dispozici celkem šestnáct paměťových slotů. Zajímalo mně tedy i to, zda zde bude vliv na výkon při 2DPC a 1DPC zapojení. Menší překvapení se skrývá v tom, že velké množství serverů podporující Zen2/Zen3 EPYCy podporuje 3200 MT/s propustnost paměťových modulů i při 2DPC osazení. Oficiálně se v 2DPC mají paměti zpomalit na 2933 MT/s, ale testovací server suše fungoval v 3200 MT/s režimu a to i s 128GB moduly.
Fotografie v záhlaví článku obsahuje hardware v přibližné ceně 700 000 Kč a velmi děkuji společnosti Abacus za zapůjčení serveru, pamětí a trpělivost, neboť článek má téměř půl roku zpoždění.
Testovací server je 1U Supermicro skládačka se základní deskou Supermicro H12SSW-iNR, podporuje tak všechny Zen2/Zen3 EPYCy, PCIe čtvrté generace a můžeme osadit až 4TB RAM. Použit byl dále dvaceti čtyř jádrový procesor AMD EPYC 7402 a na testovací Windows Server 2019 Datacenter posloužilo SSD Samsung PM9A3 960GB, připojené přes čtyři PCIe linky čtvrté generace.
Testování pamětí je poněkud obtížější než se zdá a úplně nejlepší je vyzkoušet si nějaký reálný provoz. Jenže to je něco, co se velmi obtížně testuje a může to být práce klidně na měsíce(představte si třeba cluster tří identických serverů s různou konfigurací RAM, přičemž na nich provozujete virtuální mašiny, které mezi nimi přesouváte v rámci standardního provozu a měříte výkon za běžného firemního provozu, aby něco takového mělo smysl, musí to trvat alespoň několik týdnů, podobně se měří využítí třeba diskových polí). Navíc nevím, jak bych taková data vlastně zpracoval, za předpokladu, že by byla vůbec zveřejnitelná.
Uchýlil jsem se tak k "běžnějším" benchmarkům a nějakým testům v Linuxu, aby bylo možné poukázat na výkon různých konfigurací.
Testuji pouze jednokanálové, dvoukanálové, čtyřkanálové a osmikanálové zapojení pamětí, jelikož tyto typy zapojení server i procesor podporuje. Víceméně je ale doporučeno použít osm kanálů, nebo čtyři. Šest kanálů lze údajně zapojit také, ale není to podporované. Přikládám ještě tabulku od základní desky, kde se dozvíme kam jaké moduly můžeme osadit.
Nyní představím v kostce všechny testované konfigurace.
16 x 8GB - 2DPC - 128 GB - 1Rx8 CL-24-22-22-52 1T
V této konfiguraci jsou osazeny všechny paměťové kanály a sloty v serveru. Paměti běží vesele v režimu 3200 MT/s s časováním CL-24-22-22-52 1T. Jedná se samozřejmě o Registered ECC moduly, konkrétně M393A1K43DB2-CWE od Samsungu. Tyto paměti typicky využívám do serverů, kde je třeba jen 32-64GB paměti. Moduly používají 8Gbitové čipy a jsou single rank, což nám napoví označení 1Rx8. Výkon očekávám celkem rozumný, protože jsou osazeny všechny kanály.
8 x 8GB - 1DPC - 64 GB - 1Rx8 CL-24-22-22-52 1T
Při osazení osmi modulů máme pořád osazeno všech osm kanálů a to v 1DPC režimu, protože je celková kapacita relativně nízká, očekávám v některých testech snížený výkon.
4 x 8GB - 1DPC - 32 GB - 1Rx8 CL-24-22-22-52 1T
Čtyřkanálové zapojení 8GB modulů využívám typicky ve slabších serverech s 8C-12T-16T EPYCy ála 7232P/7272/7282, kde osazení osmi kanálů nedává moc smysl, jelikož tyto procesory mají jen dva aktivní CPU čiplety a propustnost do centrálního IO čipletu neobsáhne všech osm paměťových kanálů.
2 x 8GB - 1DPC - 16 GB - 1Rx8 CL-24-22-22-52 1T
Toto zapojení bych s velkým EPYCem nedoporučil, jednak 16GB je pro server málo a dvoukanálové zapojení dobrý výkon neposkytne.
1 x 8GB - 1DPC - 8 GB - 1Rx8 CL-24-22-22-52 1T
Jednokanálové zapojení s jedním 8GB modulem je spíše taková meme konfigurace, kterou doufám nikdo do světa nevypustí, pro mnoho testů je to nedostatečné množství RAM a je zde spíše pro zajímavost.
16 x 64GB - 2DPC - 1024 GB - 2Rx4 CL-24-22-22-52 1T
Tato sada pamětí je velmi optimální, jedná se totiž o dual-rank paměti, které by měly poskytnout lepší výkon, než single-rank paměti. Časování je stejné jako u 8GB Samsungů, konkrétně jsou použity moduly Samsumg M393A8G40AB2-CWEBY. Šestnáct modulů běželo v 2DPC režimu naprosto bez potíží a to plnou rychlostí 3200 MT/s.
8 x 64GB - 1DPC - 512 GB - 2Rx4 CL-24-22-22-52 1T
Při osazení osmi modulů máme pořád osazeno všech osm kanálů a to v 1DPC režimu, výkon by však měl být celkem rozumný, protože se jedná o dual-rank paměti.
4 x 64GB - 1DPC - 256 GB - 2Rx4 CL-24-22-22-52 1T
U čtyřkanálového zapojení můžeme opět očekávat spíše nižší výkon, opět zde hraje do karet fakt, že se jedná o dual-rank paměti se slušnou kapacitou.
2 x 64GB - 1DPC - 128 GB - 2Rx4 CL-24-22-22-52 1T
Dvoukanálové zapojení opět bude podávat spíše nižší výkon a u procesoru, který podporuje mnoho paměťových kanálů toto zapojení zásadně nedoporučuji.
1 x 64GB - 1DPC - 64 GB - 2Rx4 CL-24-22-22-52 1T
Jeden 64GB modulu v jednokanálovém zapojení poskytne spíše mizerný výkon a určitě bych toto zapojení nedoporučil. Nicméně v minulosti jsem takové humorné servery od jistého dodavatele i viděl(tedy jako nabídku konfigurace, naživo jsem to neviděl nikdy, jelikož je to velmi nelogické).
16 x 128GB - 2DPC - 2048 GB - 2S2Rx4 CL-28-22-22-52 1T
Nyní se dostáváme k nejzajímavějším modulům v testu a to sice k Samsung M393AAG40M32-CAE v kapacitě 128GB s rychlostí 3200 MT/s. Zajímavé je, že časování je trochu horší, než u ostatních pamětí a začíná CL28. Další matoucí věc je značení, Samsung o modulech tvrdí, že jsou quad-rank, tedy 4Rx4, nicméně samotný modul je označen jako 2S2Rx4, což naznačuje použití 4Gbit čipů, jenže to nevychází vzhledem k fyzickému počtu paměťových modulů na PCB, je velmi pravděpodobné, že v plastových pouzdrech je vrstveno více 4Gbit čipů.
Předpokládám tedy, že se jedná o quad-rank paměti, jelikož o 2S2Rx4 jsem prakticky nic užitečného nenašel. Očekával jsem, že server bude mít s těmito paměťmi více práce, ale k mému překvapení běžely v 2DPC konfiguraci v maximální propustnosti 3200 MT/s. U těchto pamětí jsem očekával víceméně nejvyšší výkon, ale zároveň mne napadlo, že horší časování a vysoká hustota paměti (při plném osazení máme k dispozici 2TB RAM a některé testy využijí jen desítky GB RAM) pamětem lehce uškodí. Dodám ještě, že testovaný server spolkne až 4TB RAM, ale 256GB moduly jsou ještě dražší, než 128GB a i ty stojí nějakých 25 000 Kč s DPH za kus.
8 x 128GB - 1DPC - 1024 GB - 2S2Rx4 CL-28-22-22-52 1T
Pro tuto konfiguraci platí víceméně to samé, co výše, s tím rozdílem, že se jedná o 1DPC zapojení a máme "jen" 1TB RAM celkem k dispozici.
4 x 128GB - 1DPC - 512 GB - 2S2Rx4 CL-28-22-22-52 1T
Čtyřkanálové zapojení přinese relativně slušnou propustnost a rozumné množství paměti.
2 x 128GB - 1DPC - 256 GB - 2S2Rx4 CL-28-22-22-52 1T
Dva kanály nejsou opět doporučené, ale i v této konfiguraci zvládl server vše bez ztráty kytičky, resp. vše bylo možné spustit.
1 x 128GB - 1DPC - 128 GB - 2S2Rx4 CL-28-22-22-52 1T
Osobně doufám, že v téhle konfiguraci si nikdo takový server nekoupí.