Database
 sql >> Baza danych >  >> RDS >> Database

Ile pamięci RAM potrzebuje Twój nowy serwer bazy danych?

Jednym z pytań, które pojawia się dość często, jest określenie, ile fizycznej pamięci RAM powinno znajdować się na serwerze bazy danych z uruchomionym SQL Server 2012. Jedną z pierwszych informacji potrzebnych do określenia tego jest wersja i edycja SQL Server, która będzie używana na nowym serwerze.

Różne wersje i edycje 64-bitowego programu SQL Server mają różne ograniczenia licencyjne dotyczące ilości fizycznej pamięci RAM, którą mogą wykorzystać do różnych celów, jak pokazano w tabeli 1.

Wersja Wydanie Limit silnika Limit SSAS
SQL Server 2008 Standardowy

Limit systemu operacyjnego

Limit systemu operacyjnego
Przedsiębiorstwo

Limit systemu operacyjnego

Limit systemu operacyjnego
SQL Server 2008 R2 Standardowy

64 GB

64 GB
Przedsiębiorstwo

2 TB

2 TB
Centrum danych

Limit systemu operacyjnego

Limit systemu operacyjnego
SQL Server 2012 Standardowy

64 GB

64 GB
Analiza biznesowa

64 GB

Limit systemu operacyjnego
Przedsiębiorstwo

Limit systemu operacyjnego

Limit systemu operacyjnego

Tabela 1:Ograniczenia pamięci RAM SQL Server według wersji i wydania

Jak widać w tabeli 1, SQL Server 2008 może wykorzystać do limitu systemu operacyjnego dla fizycznej pamięci RAM zarówno w wersji Standard, jak i Enterprise. Kiedy Microsoft wypuścił SQL Server 2008 R2, wpadł na zły pomysł (moim zdaniem) wprowadzenia niższych limitów fizycznej pamięci RAM zarówno dla wersji Standard, jak i Enterprise. Wprowadzili także nową wersję Data Center Edition SQL Server 2008 R2, która miała stary, znany limit systemu operacyjnego jako limit licencji dla fizycznej pamięci RAM.

Limity pamięci SQL Server 2012

Kiedy Microsoft wypuścił SQL Server 2012, mądrze pozbył się jednostki SKU Data Center Edition, ale utrzymał ten sam sztucznie niski limit 64 GB pamięci RAM dla wersji Standard Edition. Długo pisałem o tym, dlaczego to zły pomysł, więc nie będę tutaj ponownie powtarzał tych argumentów. Wystarczy powiedzieć, że jest to trochę śmieszne, aby ograniczać się do używania pamięci RAM DDR3 ECC o wartości mniejszej niż 800,00 USD (64 GB razy 12 USD/GB) w nowym serwerze z dwoma gniazdami, który mógł kosztować około 10-15 000 USD dla samego serwera , plus około 29 000 USD za szesnaście licencji SQL Server 2012 Standard Edition Core, nie wspominając o kosztach przechowywania.

Jak dotąd nic nie wskazuje na to, że Microsoft ma zamiar zmienić ten limit pamięci RAM dla SQL Server 2014, więc być może będziemy musieli dalej się tym zajmować. Jednym małym pozytywnym aspektem tego limitu pamięci RAM jest to, że dotyczy on wystąpienia programu SQL Server, a nie serwera. Oznacza to, że przy odrobinie zastanowienia i planowania można zdecydować się na zainstalowanie dwóch lub trzech wystąpień programu SQL Server 2012 Standard Edition na tym samym komputerze fizycznym, aby wykorzystać wszystkie zasoby pamięci, procesora i pamięci komputera, jeśli chcesz radzić sobie z dodatkowym wykorzystaniem zasobów i kosztami zarządzania nazwanymi instancjami. Może to zaoszczędzić znaczną ilość pieniędzy na sprzęcie i kosztach licencjonowania SQL Server 2012 w porównaniu z posiadaniem dwóch lub trzech oddzielnych serwerów.

Jeśli zdecydujesz się pozostać przy jednej domyślnej instancji programu SQL Server 2012 Standard Edition (którą wolę, jeśli jestem ograniczony do wersji Standard Edition), czy powinieneś po prostu uzyskać 64 GB pamięci RAM dla serwera bazy danych? Myślę, że odpowiedź brzmi zdecydowanie nie!

Przykład konfiguracji pamięci SQL Server 2012 Standard Edition

Od klasy serwerowej pamięć RAM DDR3 ECC jest tak przystępna cenowo; Myślę, że rozsądna minimalna ilość pamięci RAM dla nowego dwuprocesorowego serwera jest bliższa 96 GB pamięci RAM. Umożliwi to ustawienie maksymalnej pamięci serwera na poziomie instancji na 65536 MB, czyli dokładnie 64 GB pamięci RAM, pozostawiając dużo nadmiarowej pamięci RAM dla systemu operacyjnego i wszelkich innych aplikacji, które mogą działać na serwerze bazy danych.

Główni dostawcy serwerów dysponują dokumentacją i narzędziami do konfiguracji pamięci online, które pomagają zapewnić najlepszą możliwą konfigurację pamięci dla żądanej ilości pamięci fizycznej. Możesz także użyć narzędzia takiego jak CPU-Z, aby sprawdzić szybkość pamięci systemowej, aby upewnić się, że działa z oczekiwaną szybkością.

Na przykład firma Dell ma tutaj narzędzie do konfiguracji online. To narzędzie pozwala wybrać żądany model serwera Dell, w tym rodzinę procesorów, z której będziesz korzystać (jeśli masz wybór) oraz liczbę procesorów fizycznych, które faktycznie będą znajdować się w serwerze. Następnie wprowadzasz, ile fizycznej pamięci RAM chcesz mieć na serwerze i wybierasz żądane opcje niezawodności pamięci (takie jak dublowanie pamięci, oszczędzanie rangi itp.), a następnie narzędzie wyświetli trzy różne możliwe konfiguracje pamięci:Konfiguracja nominalna, Maksymalna wydajność i zrównoważona konfiguracja. Te konfiguracje pokazują typ, liczbę i rozmiar modułów pamięci, których należy użyć, oraz jakie kanały pamięci i gniazda należy zapełnić, aby spełnić wybraną opcję konfiguracji.

Jeśli wybierzesz dwuprocesorowy serwer Dell PowerEdge R720 z dwoma nowymi 22-nanometrowymi procesorami Intel Xeon E5-2600 v2 (Ivy Bridge-EP) i wybierzesz 96 GB pamięci RAM bez innych opcji niezawodności, otrzymasz trzy sugerowane pamięci opcje konfiguracji. Opcja Maksymalna wydajność sugeruje dwanaście modułów RDIMM 1R x4 o pojemności 8 GB 1866 MHz, z zapełnionym gniazdem 0 na kanałach 1-4 i gnieździe 1 na kanałach 1-2 dla każdego procesora. Daje to szybkość pamięci systemowej 1866 MHz, która jest maksymalna obsługiwana przez nową serię procesorów Intel Xeon E5-2600 v2.

Nawiasem mówiąc, jeśli zamierzasz używać SQL Server 2012 Standard Edition, dokładnie taki procesor, jakiego potrzebujesz w Dell R720, to Intel Xeon E5-2667 v2, który ma osiem fizycznych rdzeni o podstawowej częstotliwości taktowania 3,3 GHz. Posiadanie modelu o większej liczbie rdzeni spowodowałoby przekroczenie limitu licencji na 16 rdzeni fizycznych dla SQL Server 2012 Standard Edition.

Opcja konfiguracji zrównoważonej sugeruje dwanaście modułów RDIMM 1R x4 8 GB 1600 MHz, z obsadzonym w gnieździe 0 na kanałach 1-4 i gnieździe 1 na kanałach 1-2 dla każdego procesora. Daje to prędkość pamięci systemowej 1600 MHz, która zużywa nieco mniej energii elektrycznej niż opcja Maksymalna wydajność.

Opcja konfiguracji nominalnej sugeruje dwadzieścia cztery moduły RDIMM 1R x8 4 GB 1333 MHz ze wszystkimi gniazdami na wszystkich kanałach obsadzonymi przez każdy procesor. Daje to szybkość pamięci systemowej 1333 MHz, a wszystkie gniazda są wypełnione dość małymi modułami RDIMM o pojemności 4 GB. Jest to mniej niż optymalny wybór, który ma na celu zaoszczędzenie pieniędzy na kosztach pamięci dzięki zastosowaniu modułów DIMM o mniejszej pojemności i mniejszej szybkości. Niestety, nie ma tutaj realnych oszczędności finansowych, kosztem rezygnacji z przyzwoitej wydajności pamięci i braku pustych gniazd pamięci.

Dzięki procesorom Intel Xeon E5-2600 i E5-2600 v2 uzyskasz najwyższą możliwą przepustowość pamięci, jeśli zapełnisz tylko jedno lub dwa gniazda na kanał pamięci. Zapełnienie trzeciego gniazda pamięci powoduje zmniejszenie szybkości pamięci systemowej. Najwyższa ilość pamięci, jaką można wykorzystać przy maksymalnej szybkości pamięci systemowej przy użyciu ekonomicznych modułów RDIMM 16 GB, wynosi 256 GB, co oznacza szesnaście modułów RDIMM 16 GB, wypełniając wszystkie gniazda na kanałach 1 i 2. Nie ma korzyści w zakresie szybkości pamięci systemowej, jeśli ma mniej niż 256 GB Pamięć RAM w dwuprocesorowym serwerze z dwoma procesorami serii Xeon E5-2600 lub E5-2600 v2.

Chociaż lepiej jest spróbować wymyślić konfigurację pamięci, która zapewnia najwyższą możliwą prędkość pamięci systemowej dla danej ilości pamięci RAM, z mojego doświadczenia (i w większości rzeczywistych testów porównawczych aplikacji, które widziałem) wynika, że ​​różnica wydajności w świecie rzeczywistym między różnymi szybkościami pamięci systemowej jest znacznie mniejsza niż można by się spodziewać, dość często w zakresie 5-10% lub mniejszym. W przypadku użycia SQL Server Enterprise Edition wolałbym mieć wystarczającą ilość pamięci RAM, aby zmieścić całe moje obciążenie w puli buforów, zamiast wybierać mniejszą ilość pamięci RAM, aby uzyskać najwyższą możliwą prędkość pamięci kosztem konieczności większego pobierania danych z podsystemu pamięci masowej często. Nawet „wolna” pamięć RAM ma o rząd wielkości mniejsze opóźnienia niż jakikolwiek typ podsystemu pamięci masowej, w tym pamięć flash.

Jeśli moje obciążenie nie mieściło się w 256 GB pamięci RAM, wolałbym dodać więcej pamięci RAM i zwiększyć prędkość pamięci systemowej, zamiast częstszego dostępu do znacznie wolniejszego podsystemu pamięci masowej. Podsumowując, myślę, że najlepszy punkt pamięci dla SQL Server 2012 Standard Edition dla tego typu serwera to 96 GB, wzrastając do 256 GB dla SQL Server 2012 Enterprise Edition (chyba że Twoje obciążenie jest większe niż 256 GB).


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 7 bezpłatnych narzędzi do tworzenia diagramów baz danych dla zajętych użytkowników danych

  2. Ustawianie fizycznej gotowości Active Data Guard w architekturze RAC One Node — część 1

  3. MuleSoft wykorzystuje GraphQL w celu zaawansowanej integracji API

  4. Jak używać klauzuli ORDER BY w SQL?

  5. Instrukcja SQL SELECT INTO