Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Практичен избор на процесор за SQL Server 2014/2016 OLTP работни натоварвания

Вероятно не процесорът, който търсите.

Представете си, че току-що сте получили одобрение за управление за нов локален сървър на база данни, който ще изпълнява критично OLTP работно натоварване с SQL Server 2014 Enterprise Edition, работещ на Windows Server 2012 R2 Standard Edition. Този нов сървър ще замени наследен сървър Dell PowerEdge R910, който работи със SQL Server 2008 R2 Enterprise Edition на Windows Server 2008 R2 Enterprise Edition. Този съществуващ сървър има четири 45nm процесора Intel Xeon X7560 Nehalem-EX (давайки ви общо 32 „физически ядра в системата) и има 512 GB RAM, което беше първокласна настройка, когато беше закупена през 2010 г.

За този пример имате малко ограничен бюджет за лицензи за хардуер и софтуер за надграждане на платформата. Искате да преминете към SQL Server 2014 Enterprise Edition, на нов сървър с много по-добра еднонишкова производителност на процесора (тъй като имате OLTP работно натоварване) и по-висок общ капацитет на процесора, като същевременно минимизирате разходите за хардуер и лиценз за SQL Server.

Като се има предвид тази информация, как бихте решили кой модел сървър да изберете и кой точен процесор да изберете? Бихте ли допуснали някой в ​​I.T. отдел взема тези решения или бихте се включили в процеса на оценка и вземане на решения? Вместо да оставя "Shon the server guy" да реши, искам да ви покажа лесен, практичен метод за това да разберете, като се използват резултати за сравнение на TPC-E, малко проста аритметика и малко здрав разум.

Първата стъпка е да проверите онлайн резултатите от сравнителния тест на TPC-E, като търсите най-близката еквивалентна система на вашата съществуваща система. Ако имате късмет, ще намерите официално представяне на еталон, което точно съвпада с вашата система. В нашия случай открих подаване от 10 април 2010 г., което просто съвпада точно с нашата наследена система. Тази система Dell PowerEdge R910 имаше действителен TPC-E резултат от 1933,96 с четири осемядрени процесора Intel Xeon X7560. Действителната оценка на пропускателната способност на TPC-E е добро измерване на общия капацитет на процесора на системата, като ви дава груба индикация за това колко едновременни заявки може да обработва (ако приемем, че нямате тесни места за съхранение или памет).

Втората стъпка е да вземете действителната оценка на TPC-E Throughput за тази система и да я разделите на броя на физическите процесорни ядра в системата, за да получите представа за производителността на еднонишковия процесор за конкретния процесор в бенчмаркираната система . За тази система просто бихме разделили 1933,96 на 32 физически ядра, за да получим „резултат за ядро“ от 60,44. Intel Xeon X7560 има базова тактова честота от 2.26GHz, с турбо тактова честота от 2.66GHz. Той има 24MB споделен L3 кеш и 6,4 GT/s Intel QPI скорост. Quick Path Interconnect (QPI) е взаимно свързване от точка до точка между процесора и интегрирания контролер на паметта, така че наличието на по-високи скорости на QPI означава по-бърз достъп до паметта.

Третата стъпка е да потърсите резултати от сравнителния тест на TPC-E за системи и процесори от текущо поколение, опитвайки се да намерите резултат за система, която е приблизително еквивалентна на типа нова система, която обмисляте. За съжаление, това понякога ще бъде трудно, тъй като доставчиците на сървъри не са представяли толкова много нови системи, колкото преди, и защото винаги представят системи, които използват „флагманския“, процесор с най-голям брой ядра за дадено поколение процесори и семейство. Това прави действителната оценка на TPC-E Throughput по-висока, но също така прави система, използваща този процесор, много по-скъпа за лицензиране за SQL Server поради по-високия брой ядра. Друг проблем с тези „водещи“ модели процесори е, че те обикновено търгуват с по-висок брой физически ядра за по-ниски базови тактови честоти, така че в крайна сметка плащате много по-високи разходи за лицензиране и всъщност получавате по-ниска производителност на еднонишковия процесор.

Конвенционалната мъдрост би била, че бихте искали нов сървър с четири гнезда, който да замени съществуващия ви сървър с четири сокета. С модерните сървъри с два сокета това може да не е необходимо вече, в зависимост от големината на вашето работно натоварване. Имаше период от началото на 2012 г. до началото на 2014 г., когато новите сървърни процесори от семейство Xeon E5 с два сокета бяха много по-бързи за еднонишкова производителност от новите сървърни процесори от семейството Xeon E7 с четири гнезда. Тази разлика в производителността намаля доста, когато семейството на Xeon E7 v2 Ivy Bridge-EX беше пуснато в началото на 2014 г. Оттогава семействата E5 и E7 са още по-близки, тъй като и двете използват микроархитектурата на Haswell.

Като се има предвид този почти паритет на производителността на процесора, изборът на вашия сървърен модел се свежда до общата памет, процесора и капацитета на IO. Текущите сървъри с два сокета са практически ограничени до 768 GB RAM с 32 GB DIMM, докато настоящите сървъри с четири гнезда могат да имат 3TB RAM с 32 GB DIMM. Повечето клиенти, с които се сблъсквам, могат удобно да изпълняват работното си натоварване на 768 GB RAM, но някои всъщност се нуждаят от повече от това. Сървърите с два и четири сокета могат да използват процесори Haswell с по 18 физически ядра всяко, така че имате ограничение от 36 или 72 физически ядра във вашата система, в зависимост от броя на вашите гнезда.

За това упражнение има резултат за сравнение на TPC-E за система Fujitsu Primergy RX2540 M1 с два сокета с действителен TPC-E Throughput score от 3772,08, използвайки два Intel Xeon E5-2699 v3 осемнадесет ядрени процесора Haswell-EP и 512GB от RAM. Процесорът Xeon E5-2699 v3 има базова тактова честота от 2,3 GHz, с Turbo тактова честота от 3,6 GHz. Той има 45MB споделен L3 кеш и 9,6 GT/s Intel QPI скорост. За тази система бихме разделили действителния резултат от 3772,08 на 36 физически ядра, за да получим "резултат за ядро" от 104,78.

Тази нова система с два сокета би имала почти удвояване на общия капацитет на процесора от наследената система, с около 1,57 пъти по-висока производителност при еднонишкова работа. От гледна точка на капацитета на процесора и еднонишковата производителност, бих бил доста уверен, че тази нова система с два сокета ще бъде добър заместител на наследената система. Тази нова система ще има и PCIe 3.0 слотове за разширение, така че ще има по-голям общ капацитет за IO от старата система. За съжаление, той има 36 физически ядра, които ще изискват лицензи за SQL Server 2014 Enterprise Edition, което ще бъде доста скъпо.

По-добър избор на процесор може да бъде Intel Xeon E5-2667 v3, който има осем физически ядра, с базова тактова честота от 3,2GHz, Turbo тактова честота от 3,6GHz, 20MB споделен L3 кеш и 9,6 GT/s Intel QPI скорост. Използвайки проста аритметика, можем да коригираме разликите между Xeon E5-2699 v3 и Xeon E5-2667 v3 (тъй като и двете са от едно и също поколение процесори и семейство).

Първо, коригирам се за разликата в броя на физическите ядра. Ако разделите 8 на 18, резултатът е 0,44, така че умножите 3 772,08 по 0,44, получаваме резултат от 1 676,48. След това трябва да коригираме разликата в базовата тактова честота между тези два процесора. E5-2667 v3 има 39% по-висока базова тактова честота от процесора E5-2699 v3, така че ще умножим 1676,48 по 1,39, за да получим окончателна оценка TPC-E резултат от 2330,31. Ако разделим този приблизителен резултат на 16 физически ядра, получаваме резултат за "резултат за ядро" от 145,64.

Така че, според това изчисление, ние все още ще имаме по-голям общ капацитет на процесора от наследената система и много по-добра производителност на еднонишковия процесор, използвайки по-нисък брой ядра, „оптимизиран за честота“ процесор Xeon E5-2667 v3 в новия двусокет система. Последният бонус от този избор на процесор е много по-ниски разходи за лицензиране на SQL Server 2014, тъй като ще ни трябват само 16 основни лиценза вместо 36 основни лиценза, което е спестяване от около $136 000,00.

Надяваме се, че е малко по-ясно как можете да направите прост анализ, който да ви помогне да решите точния процесор, който трябва да изберете за нов сървър на база данни, като се има предвид вашето работно натоварване и бюджетни ограничения. Този анализ е малко по-сложен, когато трябва да сравнявате процесори от различни поколения и семейства, но могат да се използват едни и същи основни принципи. Ще се потопя по-дълбоко в тази тема в следваща статия.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL - Изваждане на изчерпваща стойност от редове

  2. Използвайте OBJECTPROPERTY(), за да разберете дали дадена таблица е системна таблица в SQL Server

  3. Как да съхранявате директория/йерархия/дървовидна структура в базата данни?

  4. Проверете дали дадена таблица има колона TIMESTAMP в SQL Server с OBJECTPROPERTY()

  5. Може ли INNER JOIN да предложи по-добра производителност от EXISTS