Od vydání SQL Server 2016 Service Pack 1 dne 16. listopadu 2016 s mnoha velmi užitečnými funkcemi souvisejícími s programováním, které byly dříve dostupné pouze v Enterprise Edition, se pro mnoho organizací stalo mnohem snazší, aby se záměrně rozhodly používat SQL Server 2016. Standard Edition, než tomu bylo v minulosti.
Pokud o tom uvažujete, musíte si být vědomi některých běžných problémů a úskalí, se kterými se můžete setkat při instalaci a používání SQL Server 2016 Standard Edition na novém serveru s moderním hardwarem.
Omezení paměti a konfigurace
Prvním problémem jsou licenční limity pro jednotlivé instance pro SQL Server 2016 Standard Edition. Prvním licenčním limitem je množství paměti, kterou můžete použít pro fond vyrovnávacích pamětí pro každou instanci SQL Server 2016 Standard Edition, což je pouze 128 GB, stejně jako tomu bylo v SQL Server 2014 Standard Edition. Osobně si myslím, že tento limit je uměle nízký vzhledem k hustotě paměti moderních dvousocketových serverů, ale je to limit, se kterým se musíme vypořádat.
Současné dvoupaticové servery, které používají procesory řady Intel Xeon E5-2600 v4, mohou využívat až 12 modulů DIMM na procesor, zatímco moduly DIMM 32GB DDR4 ECC DIMM představují nejvyšší kapacitu, která je také dostupná na GB. Každý server s touto řadou procesorů má 4 paměťové kanály na procesor, přičemž každý kanál podporuje až 3 moduly DIMM. Plně obsazený dvousocketový server s dvaceti čtyřmi 32GB moduly DIMM by měl 768 GB RAM, což je mnohem více, než může použít jedna instance SQL Server 2016 Standard Edition.
Vzhledem k tomu, že SQL Server 2016 Standard Edition má tak nízký limit paměti na instanci, měli byste záměrně zvolit vhodnou konfiguraci paměti, která vám umožní využít veškerou paměť s licenčním limitem a zároveň získat nejlepší možný výkon paměti. Pouze jeden modul DIMM na paměťový kanál vám poskytne absolutně nejlepší výkon paměti podporovaný vašimi procesory.
Hlavní prodejci serverů, jako je Dell, nabízejí podrobné pokyny k možným konfiguracím paměti pro jejich servery v závislosti na počtu a konkrétním typu zvoleného procesoru. Pro SQL Server 2016 Standard Edition ve dvousoketovém serveru se dvěma procesory řady Intel Xeon E5-2600 v4 získáte výběrem osmi 32GB DDR4 DIMM 256 GB paměti RAM s maximální podporovanou rychlostí 2 400 MT/s.
To by vám umožnilo nastavit maximální paměť serveru (pro oblast vyrovnávacích pamětí) na 131 072 MB (128 GB) a stále vám zbyde spousta paměti pro operační systém a pro možné použití indexy columnstore a in-memory-OLTP. Měli byste také šestnáct prázdných slotů DIMM, které by bylo možné použít pro budoucí rozšíření paměti RAM (což byste mohli využít, pokud byste provedli následnou aktualizaci Edition na Enterprise Edition). Další využití pro některé z těchto prázdných slotů DIMM by bylo pro „ukládání do mezipaměti konce protokolu“ na NVDIMM (které je podporováno v SQL Server 2016 Standard Edition s SP1).
Licenční limity procesoru
SQL Server 2016 Standard Edition je také omezen na menší ze čtyř patic nebo 24 fyzických procesorových jader. Se současnými a nadcházejícími rodinami procesorů Intel i AMD, které budou mít až 32 fyzických jader, je velmi snadné neúmyslně překročit limit procesorových jader na instanci, což má řadu strašných důsledků pro výkon a náklady na licence.
Prvním negativním efektem tohoto postupu je, jak SQL Server 2016 Standard Edition alokuje vaše dostupná fyzická jádra s licenčním limitem mezi vaše uzly NUMA. Pokud jste například měli nový dvousocketový server, který měl dva 16jádrové procesory Intel Xeon E5-2697A v4, ve výchozím nastavení by SQL Server 2016 Standard Edition používal šestnáct fyzických jader na uzlu NUMA a pouze osm jader na uzlu NUMA. uzel 1, což je nevyvážená konfigurace, která nebude fungovat tak dobře, jak by mohla. Tento problém můžete vyřešit pomocí příkazu ALTER SERVER CONFIGURATION, jak zde popisuji.
Aby se v této situaci přidala urážka ke zranění, společnost Microsoft by také očekávala, že si zakoupíte základní licence pro všech 32 fyzických jader v počítači, i když máte povoleno používat pouze 24 fyzických jader na instanci. To by představovalo dodatečné náklady na licenci zhruba 15 000 USD u základních licencí, které byste nemohli používat, pokud byste se nerozhodli provozovat více instancí na stejném hostitelském počítači. Dodatečné náklady na licenci by se zaplatily za typický dvousocketový server v závislosti na tom, jak byl nakonfigurován.
Dalším běžným úskalím, kterému byste se měli u Standard Edition vyhnout, je vytvoření virtuálního počítače, který má více než čtyři sokety. Pokud to uděláte, SQL Server Standard Edition bude používat pouze čtyři sokety kvůli limitu licencí soketu.
Výběr procesoru
V současné době je nejmodernější řadou procesorů Intel Xeon pro dvousocketové servery 14nm řada produktů Intel Xeon E5-2600 v4 (Broadwell-EP), která byla uvedena na trh v 1. čtvrtletí roku 2016. Společnost Intel je na pokraji vydání nové generace 14nm Intel Xeon E5-2600 v5 (Skylake-EP), který je již dostupný v Google Cloud Platform. Odhaduji, že tyto nové procesory (které budou vyžadovat nové modelové servery) budou veřejně dostupné ve 2. čtvrtletí roku 2017.
Vzhledem k tomuto limitu 24 fyzických základních licencí je to extrémně důležité že nevyberete procesor, který má více než 12 fyzických jader (pokud plánujete naplnit oba sokety dvousocketového serveru). To poněkud omezuje váš výběr SKU procesorů, ale stále jsou k dispozici čtyři skvělé možnosti, jak ukazuje Tabulka 1.
Model | Jádra | Odh. Systémové skóre TPC-E | Skóre/Fyzické jádro | Cena licence |
---|---|---|---|---|
Xeon E5-2687W v4 | 24 | 3 673,00 | 153,04 | 44 592,00 $ |
Xeon E5-2667 v4 | 16 | 2 611,91 | 163,24 | 29 728,00 $ |
Xeon E5-2643 v4 | 12 | 2 081,36 | 173,44 | 22 296,00 $ |
Xeon E5-2637 v4 | 8 | 1 428,39 | 178,54 | 14 864,00 $ |
Tabulka 1:Srovnávací metriky dvoupaticového systémového procesoru
Tabulka 1 ukazuje celkový počet fyzických jader, odhadované skóre TPC-E, odhadované skóre TPC-E/fyzické jádro a celkové náklady na licenci SQL Server 2016 Standard Edition pro dvousocketový systém osazený dvěma z vybraných procesorů. Můžete si všimnout, že mám dvanáctjádrový procesor, osmijádrový procesor, šestijádrový procesor a čtyřjádrový procesor, ale v tabulce 1 není žádný desetijádrový procesor. Toto je záměrné, protože tři dostupné modely desetijádrových procesorů jsou pro SQL Server velmi špatnou volbou, protože mají velmi nízké základní takty.
Odhadované skóre TPC-E pro celý systém je měřítkem celkové kapacity CPU systému, zatímco skóre/jádro je měřítkem výkonu jednovláknového CPU daného konkrétního procesoru.
Shrnutí
Pokud chcete nejlepší možný výkon při nejnižších nákladech na hardware a SQL Server pro instanci SQL Server 2016 Standard Edition, měli byste zvolit konfiguraci paměti, která používá pouze jeden DIMM na paměťový kanál (to znamená celkem osm DIMM v systému se dvěma paticemi se dvěma procesory rodiny Intel Xeon E5-2600 v4).
Měli byste si také záměrně vybrat jeden ze čtyř procesorů uvedených v tabulce 1. Jakákoli volba jiného procesoru je z tohoto pohledu potenciálně drahá chyba.
A konečně, pokud budete používat SQL Server 2016 Standard Edition, měli byste prozkoumat a otestovat, zda by rozšíření Buffer Pool Extension (BPE) mohlo pomoci výkonu s vaší pracovní zátěží. V závislosti na vaší pracovní zátěži může být ukládání do mezipaměti „tail of log“ na NVDIMM také velmi užitečné pro výkon vašeho protokolu transakcí.