След пускането на SQL Server 2016 Service Pack 1 на 16 ноември 2016 г., с много много полезни функции, свързани с програмирането, които преди бяха налични само в Enterprise Edition, за много организации стана много по-осъществимо да изберат нарочно да използват SQL Server 2016 Стандартно издание, отколкото в миналото.
Ако мислите да направите това, трябва да сте наясно с някои често срещани проблеми и клопки, които може да срещнете, когато инсталирате и използвате SQL Server 2016 Standard Edition на нов сървър с модерен хардуер.
Ограничения на паметта и конфигурация
Първият проблем са ограниченията за лицензиране на екземпляр за SQL Server 2016 Standard Edition. Първото ограничение на лиценза е количеството памет, което можете да използвате за буферния пул за всеки екземпляр на SQL Server 2016 Standard Edition, който е само 128 GB, точно както беше в SQL Server 2014 Standard Edition. Лично аз смятам, че тази граница е изкуствено ниска, като се има предвид плътността на паметта на съвременните двусокети сървъри, но това е ограничение, с което трябва да се справим.
Текущите сървъри с два сокета, които използват процесори от семейство продукти Intel Xeon E5-2600 v4, могат да използват до 12 DIMM модула на процесор, докато 32GB DDR4 ECC DIMM са най-високият капацитет, който също е достъпен за GB. Всеки сървър с това семейство процесори има 4 канала памет на процесор, като всеки канал поддържа до 3 DIMM. Напълно населен сървър с два сокета с двадесет и четири 32GB DIMM модула ще има 768GB RAM, което е много повече от един екземпляр на SQL Server 2016 Standard Edition, който е разрешен за използване.
Тъй като SQL Server 2016 Standard Edition има толкова нисък лимит на паметта на екземпляр, трябва нарочно да изберете подходяща конфигурация на паметта, която ще ви позволи да използвате цялата памет с ограничение на лиценза, като същевременно ще получите възможно най-добрата производителност на паметта. Само попълването на един DIMM на канал на паметта ще ви даде абсолютно най-добрата производителност на паметта, поддържана от вашия процесор(и).
Основните доставчици на сървъри, като Dell, предлагат подробни насоки относно възможните конфигурации на паметта за техните сървъри, в зависимост от броя и конкретния тип избран процесор. За SQL Server 2016 Standard Edition в сървър с два сокета с два процесора от семейство Intel Xeon E5-2600 v4, като изберете осем, 32GB DDR4 DIMM, ще ви даде 256GB RAM, работеща с максимална поддържана скорост от 2400MT/s.
Това би ви позволило да зададете максимална памет на сървъра (за буферния пул) на 131 072 MB (128 GB) и все пак да имате достатъчно памет за операционната система и за евентуално използване от индекси на columnstore и in-memory-OLTP. Ще имате и шестнадесет празни DIMM слота, които могат да се използват за бъдещо разширяване на RAM (от което бихте могли да се възползвате, ако извършите последващо надграждане на изданието до Enterprise Edition). Друга употреба на някои от тези празни DIMM слотове би била за „опашката на кеширането на регистрационните файлове“ на NVDIMM (което се поддържа в SQL Server 2016 Standard Edition със SP1).
Ограничения на лиценза за процесор
SQL Server 2016 Standard Edition също е ограничен до по-малкото от четири гнезда или 24 физически процесорни ядра. С настоящите и предстоящите фамилии процесори както от Intel, така и от AMD, които ще имат до 32 физически ядра, е много лесно по невнимание да се надхвърли лимита на ядрото на процесора за всеки екземпляр, с редица тежки последици за производителността и разходите за лицензиране.
Първият отрицателен ефект от това е как SQL Server 2016 Standard Edition ще разпредели наличните ви физически ядра с ограничени лицензи във вашите NUMA възли. Например, ако имате нов сървър с два сокета, който има два 16-ядрени процесора Intel Xeon E5-2697A v4, по подразбиране SQL Server 2016 Standard Edition ще използва шестнадесет физически ядра на NUMA възел 0 и само осем ядра на NUMA възел 1, което е небалансирана конфигурация, която няма да работи толкова добре, колкото би могла. Можете да отстраните този проблем с команда ALTER SERVER CONFIGURATION, както описвам тук.
За да добави обида към нараняване в тази ситуация, Microsoft също очаква да закупите лицензи за ядро за всичките 32 физически ядра в машината, въпреки че имате право да използвате само 24 физически ядра на екземпляр. Това би било приблизително 15 000 долара допълнителни лицензионни разходи за основни лицензи, които няма да можете да използвате, освен ако не решите да стартирате няколко екземпляра на една и съща хост машина. Допълнителната цена на лиценза би платила за типичен сървър с два сокета, в зависимост от това как е конфигуриран.
Друг често срещан капан, който трябва да избягвате със Standard Edition, е създаването на виртуална машина, която има повече от четири сокета. Ако направите това, SQL Server Standard Edition ще използва само четири сокета поради ограничението на лиценза за сокет.
Избор на процесор
В момента най-модерното семейство процесори Intel Xeon за сървъри с два сокета е 14nm продуктовото семейство Intel Xeon E5-2600 v4 (Broadwell-EP), което беше пуснато през първото тримесечие на 2016 г. Intel е на прага да пусне следващото поколение 14nm Intel Xeon E5-2600 v5 (Skylake-EP), който вече е наличен в Google Cloud Platform. Предполагам, че тези нови процесори (които ще изискват нови модели сървъри) ще бъдат публично достъпни през второто тримесечие на 2017 г.
Като се има предвид това ограничение на лиценза от 24 физическо ядро, това е изключително важно че не избирате процесор, който има повече от 12 физически ядра (ако планирате да попълните и двата гнезда на сървър с два сокета). Това донякъде ограничава избора ви от SKU на процесори, но все още има четири страхотни възможности за избор, както е показано в таблица 1.
Модел | Ядра | Прогн. Системен резултат TPC-E | Резултат/физическо ядро | Цена на лиценза |
---|---|---|---|---|
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 | 1428,39 | 178,54 | 14 864,00$ |
Таблица 1:Сравнителни показатели на системния процесор с два сокета
Таблица 1 показва общите физически ядра, изчисления TPC-E резултат, прогнозния TPC-E резултат/физическо ядро и общата цена на лиценза за SQL Server 2016 Standard Edition за система с два сокета, попълнена с два от избрания процесор. Може да забележите, че имам дванадесет-ядрен процесор, осемядрен процесор, шестядрен процесор и четириядрен процесор, но в таблица 1 няма десетядрен процесор. Това е по проект, тъй като трите налични десет-ядрен модела процесори са много лош избор за SQL Server, поради много ниските им базови тактови честоти.
Приблизителният резултат TPC-E за цялата система е мярка за общия капацитет на процесора на системата, докато резултатът/ядрото е мярка за производителността на еднонишковия процесор на този конкретен процесор.
Резюме
Ако искате възможно най-добрата производителност при най-ниските разходи за хардуер и лицензиране на SQL Server за екземпляр на SQL Server 2016 Standard Edition, трябва да изберете конфигурация на паметта, която използва само един DIMM на канал на паметта (което означава общо осем DIMM в система с два сокета с два процесора от семейство Intel Xeon E5-2600 v4).
Трябва също така нарочно да изберете един от четирите процесора, изброени в таблица 1. Всеки друг избор на процесор е потенциално скъпа грешка от тази гледна точка.
И накрая, ако ще използвате SQL Server 2016 Standard Edition, трябва да проучите и тествате дали разширението на буферния пул (BPE) може да помогне за производителността с вашето работно натоварване. В зависимост от вашето работно натоварване, кеширането на „опашката на дневника“ на NVDIMM също може да бъде много полезно за ефективността на вашия дневник на транзакциите.