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

Колко RAM се нуждае от вашия нов сървър за база данни?

Един въпрос, който се появява доста често, е как да определите колко физическа RAM трябва да има в сървър на база данни, работещ със SQL Server 2012. Една от първите части от информацията, която трябва да определите, е коя версия и издание на SQL Server ще използвате на вашия нов сървър.

Различните версии и издания на 64-битов SQL Server имат различни лицензионни ограничения за това колко физическа RAM памет могат да използват за различни цели, както е показано в Таблица 1.

Версия Издание Ограничение на двигателя Ограничение на SSAS
SQL Server 2008 Стандартно

Ограничение на ОС

Ограничение на ОС
Предприятие

Ограничение на ОС

Ограничение на ОС
SQL Server 2008 R2 Стандартно

64GB

64GB
Предприятие

2 TB

2 TB
Център за данни

Ограничение на ОС

Ограничение на ОС
SQL Server 2012 Стандартно

64GB

64GB
Бизнес разузнаване

64GB

Ограничение на ОС
Предприятие

Ограничение на ОС

Ограничение на ОС

Таблица 1:Ограничения на RAM на SQL Server по версия и издание

Както можете да видите от Таблица 1, SQL Server 2008 може да използва до лимита на операционната система за физическа RAM както за Standard, така и за Enterprise Edition. Когато Microsoft пусна SQL Server 2008 R2, те имаха лошата идея (според мен) да въведат по-ниски ограничения за физическа RAM памет както за Standard, така и за Enterprise Edition. Те също така представиха ново издание на Data Center Edition на SQL Server 2008 R2, което имаше старото, познато ограничение на операционната система като ограничение за лиценз за физическа RAM.

Ограничения на паметта на SQL Server 2012

Когато Microsoft пусна SQL Server 2012, те мъдро се отърваха от Data Center Edition SKU, но запазиха същото изкуствено ниско ограничение от 64 GB RAM за Standard Edition. Писах надълго и нашироко защо това е лоша идея, така че няма да повтарям тези аргументи тук. Достатъчно е да кажем, че е малко нелепо да бъдете ограничени да използвате по-малко от $800,00 на DDR3 ECC RAM (64GB пъти $12/GB) в нов сървър с два сокета, който може да струва около $10-$15K за самия сървър , плюс около $29 000 за шестнадесет основни лиценза за SQL Server 2012 Standard Edition, да не говорим за разходите ви за съхранение.

Засега няма индикации, че Microsoft има намерение да промени това ограничение на RAM за SQL Server 2014, така че може да се наложи да продължим да се справяме с него. Един малък положителен аспект на това ограничение на RAM е, че е за екземпляр на SQL Server, а не за сървър. Това означава, че бихте могли, с малко мислене и планиране, да решите да инсталирате две или три екземпляра на SQL Server 2012 Standard Edition на една и съща физическа машина, за да се възползвате от цялата памет, процесор и ресурси за съхранение на машината, ако желаете за справяне с допълнителното използване на ресурси и управление на режийните разходи на наименувани екземпляри. Това може да ви спести значителна сума пари за хардуер и разходи за лицензиране на SQL Server 2012 в сравнение с два или три отделни сървъра.

Ако решите просто да се придържате към един екземпляр по подразбиране на SQL Server 2012 Standard Edition (което предпочитам, ако съм ограничен до Standard Edition), трябва ли просто да получите 64 GB RAM за сървъра на базата данни? Мисля, че отговорът е категорично не!

Пример за конфигурация на паметта на SQL Server 2012 Standard Edition

Тъй като сървърният клас, DDR3 ECC RAM е толкова достъпен; Мисля, че разумното минимално количество RAM за нов сървър с два сокета е по-близо до 96 GB RAM. Това ще ви позволи да зададете максималната настройка на сървърната памет на ниво екземпляр на 65536 MB, което е точно 64 GB RAM, като същевременно ще оставите много излишна RAM за операционната система и всички други приложения, които може да се изпълняват на сървъра ви на база данни.

Основните доставчици на сървъри разполагат с документация и онлайн инструменти за конфигуриране на паметта, които помагат да се уверите, че получавате възможно най-добрата конфигурация на паметта за желаното количество физическа памет. Можете също да използвате инструмент като CPU-Z, за да проверите скоростта на системната памет, за да се уверите, че работи с очакваната от вас скорост.

Например, Dell има инструмент за онлайн конфигуриране тук. Този инструмент ви позволява да изберете модела на сървъра на Dell, който искате, включително кое семейство процесори ще използвате (когато имате избор) и броя на физическите процесори, които действително ще бъдат в сървъра. След това въвеждате колко физическа RAM желаете в сървъра и избирате желаните опции за надеждност на паметта (като огледално отразяване на паметта, запазване на ранг и т.н.), а след това инструментът ще излезе с три различни възможни конфигурации на паметта:Номинална конфигурация, Максимална производителност и балансирана конфигурация. Тези конфигурации показват типа, броя и размера на модулите памет, които трябва да използвате, и какви канали и слотове трябва да попълните, за да удовлетворите избраната опция за конфигурация.

Ако изберете сървър с два сокета Dell PowerEdge R720 с два от новите 22nm процесори Intel Xeon E5-2600 v2 (Ivy Bridge-EP) и изберете 96 GB RAM без други опции за надеждност на паметта, ще получите три предложени памет опции за конфигурация. Опцията за максимална производителност предлага дванадесет, 8GB 1866MHz 1R x4 RDIMM, със слот 0 на канали 1-4, попълнен и слот 1 на канали 1-2, попълнен за всеки процесор. Това ви дава скорост на системната памет от 1866MHz, което е максималната поддържана от новата серия процесори Intel Xeon E5-2600 v2.

Между другото, ако ще използвате SQL Server 2012 Standard Edition, точният процесор, който искате в Dell R720, е Intel Xeon E5-2667 v2, който има осем физически ядра с базова тактова честота от 3,3 GHz. Наличието на модел с по-висок брой ядра би се натъкнал на ограничението за лицензи от 16 физически ядра за SQL Server 2012 Standard Edition.

Опцията за балансирана конфигурация предлага дванадесет, 8GB 1600MHz 1R x4 RDIMM, със слот 0 на канали 1-4, попълнен и слот 1 на канали 1-2, попълнен за всеки процесор. Това ви дава скорост на системната памет от 1600MHz, която ще използва малко по-малко електрическа енергия от опцията за максимална производителност.

Опцията за номинална конфигурация предлага двадесет и четири, 4GB 1333MHz 1R x8 RDIMM с всички слотове на всички канали, попълнени за всеки процесор. Това ви дава скорост на системната памет от 1333MHz, като всичките ви слотове са попълнени с доста малки 4GB RDIMM. Това е по-малко от оптимален избор, който е предназначен да спести малко пари от разходи за памет чрез използване на по-малък капацитет и по-ниска скорост DIMM. За съжаление, тук има малко реални парични спестявания, с цената на отказ от прилично количество производителност на паметта и липса на празни слотове за памет.

С процесорите от серията Intel Xeon E5-2600 и E5-2600 v2 ще получите възможно най-високата честотна лента на паметта, ако попълните само един или два слота на канал на паметта. Попълването на третия слот за памет води до намаляване на скоростта на системната памет. Най-голямото количество памет, което можете да използвате при максимална скорост на системната памет, използвайки икономични 16GB RDIMM, е 256GB, което би било шестнадесет, 16GB RDIMM, запълващи всички слотове на канали 1 и 2. Няма полза от скоростта на системната памет от наличието на по-малко от 256GB RAM в сървър с два сокета с два процесора от серия Xeon E5-2600 или E5-2600 v2.

Въпреки че е по-добре да се опитате да измислите конфигурация на паметта, която дава възможно най-високата скорост на системната памет за дадено количество RAM, според моя опит (и в повечето действителни тестове на приложения, които съм виждал), разликата в производителността в реалния свят между различните скорости на системната памет е много по-малка, отколкото бихте очаквали, доста често в диапазона 5-10% или по-малко. За използването на SQL Server Enterprise Edition, бих предпочел да имам достатъчно RAM, за да побера цялото си работно натоварване в буферния пул, вместо да избирам по-ниско количество RAM, за да получа възможно най-високата скорост на паметта с цената на необходимостта да изтегля данни от подсистемата за съхранение повече често. Дори „бавната“ RAM памет има порядък по-малка латентност от всеки тип подсистема за съхранение, включително базирана на флаш памет.

Ако работното ми натоварване не се побираше в 256 GB RAM, бих предпочел да добавя повече RAM и да взема скоростта на системната памет, вместо да приемам удара от нуждата да влизам по-често до много по-бавната подсистема за съхранение. И така, за да обобщя, мисля, че най-доброто място за паметта за SQL Server 2012 Standard Edition за този тип сървъри е 96GB, което се увеличава до 256GB за SQL Server 2012 Enterprise Edition (освен ако работното ви натоварване е по-голямо от 256GB).


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Открийте 10 по-малко известни възможности на SQL Diagnostic Manager

  2. Какво бих искал да видя в Amazon EC2 за управление на бази данни

  3. Премахване на дублирането на изразите Where в приложението

  4. Съображения за производителност на управляван екземпляр на Azure SQL

  5. Проверка дали колона, която не е LOB, трябва да бъде актуализирана