Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Korzystanie z pamięci masowej Intel Optane w programie SQL Server

Podstawy Intel Optane SSD DC P4800X

Seria Intel Optane SSD DC P4800X została wprowadzona na rynek w pierwszym kwartale 2017 r., początkowo z pojemnością 375 GB, a później z pojemnością 750 GB, która została wprowadzona na rynek w 2017 r. Firma Intel niedawno wypuściła również wersję tego dysku o pojemności 1,5 TB, do której nadal trudno się dostać kanał detaliczny. Wszystkie te dyski korzystają z interfejsu PCIe NVMe 3.0 x4 i są dostępne w dwóch różnych obudowach, z których pierwszy to dodatkowa karta (AIC) o połowie wysokości i połowie długości (HHHL) umieszczana w gnieździe rozszerzeń PCIe, oraz drugi to format U.2 15 mm dla dysków 2,5” podłączanych przez PCIe 3.0.

Technologia pamięci masowej Intel 3D XPoint zasadniczo różni się od tradycyjnej pamięci flash NAND. Wysoka wydajność dysku SSD DC P4800X przy małej głębokości kolejki sprawia, że ​​znacznie łatwiej jest uzyskać bardzo wysoką wydajność w rzeczywistych warunkach, zwłaszcza w przypadku użycia programu SQL Server. Dyski Intel Optane SSD mają około 10 razy mniejsze opóźnienia i 5-8 razy lepszą przepustowość przy małej głębokości kolejki w porównaniu z najszybszymi dyskami SSD PCIe NVMe NAND. Charakteryzują się także wyższą wytrzymałością na zapis niż „intensywne” pamięci flash NAND dla przedsiębiorstw, a ich wydajność nie pogarsza się, ponieważ są bliskie pełnego zapełnienia. Charakteryzują się stałymi czasami odpowiedzi odczytu przy bardzo dużym obciążeniu zapisu, a w przeciwieństwie do tradycyjnych dysków flash NAND nie powodują utraty wydajności w przypadku dysków o mniejszej pojemności w porównaniu z dyskami o większej pojemności z tej samej linii produktów. W przypadku obciążeń o niskim opóźnieniu obecnie nie ma nic, co mogłoby zbliżyć się do dysku Intel Optane SSD DC P4800X.

Dane techniczne Intel Optane SSD DC P4800X

Firma Intel ocenia dyski Optane SSD DC P4800X na 2500 MB/s w przypadku odczytów sekwencyjnych, 2200 MB/s w przypadku sekwencyjnych zapisów i 550 000 IOPS zarówno w przypadku odczytu, jak i zapisu. Ich znamionowe opóźnienie wynosi 10 µs (mikrosekund) zarówno dla odczytów, jak i zapisów. Dla porównania, firma Intel ocenia aktualną generację dysków SSD 3D-NAND z trzema poziomami komórek (TLC) DC P4600 na 3200 MB/s dla odczytów sekwencyjnych, 1575 MB/s dla zapisów sekwencyjnych i 610 000 IOPS dla odczytów i 196 650 IOPS dla pisze. Ich znamionowe opóźnienie wynosi 85 µs dla odczytów i 15 µs dla zapisów.

Obecna cena wynosi około 1200 USD za rozmiar 375 GB i około 250 000 USD za rozmiar 750 GB. Rozmiar 1,5 TB jest nadal trudny do zdobycia w kanale detalicznym, ale cena powinna być mniej więcej taka sama za GB, jak w przypadku dysków o mniejszej pojemności. W większości przypadków będziesz chciał uzyskać dwa identyczne dyski, a następnie utworzyć programową macierz RAID 1 przy użyciu przestrzeni dyskowych systemu Windows, aby uzyskać nadmiarowość bez utraty wydajności.

Powinieneś pobrać i zainstalować sterowniki Intel Datacenter NVMe Microsoft Windows dla dysków Intel SSD zamiast używać ogólnego sterownika Microsoft NVMe. Będziesz także chciał pobrać i zainstalować narzędzie Intel SSD Firmware Update Tool, aby upewnić się, że masz zainstalowane najnowsze oprogramowanie układowe na każdym dysku Optane.

Podstawowe scenariusze użycia serwera SQL

Te cechy wydajności sprawiają, że te karty Intel Optane są wyjątkowo dobrze przystosowane do wielu intensywnych obciążeń tempdb, szczególnie ciężkich obciążeń OLTP i sytuacji, w których korzystasz z izolacji migawek zatwierdzonych do odczytu (RCSI) w bazach danych użytkowników (co powoduje, że powstałe obciążenie magazynu wersji jest włączone tempdb).

Osiągnąłem świetne wyniki, używając dysków Intel Optane SSD DC P4800X w instancjach SQL Server z wyjątkowo wymagającymi obciążeniami tempdb. Kilku niedawnych klientów przeniosło swoje pliki bazy danych tempdb z innego typu pamięci na dysk logiczny, który był obsługiwany przez kilka kart pamięci Intel Optane SSD DC P4800X PCIe NVMe (w programowej macierzy RAID 1). Klasycznym przypadkiem użycia jest przeniesienie tempdb z udostępnionego magazynu w sieci SAN z tradycyjnym wystąpieniem klastra awaryjnego do magazynu lokalnego w każdym węźle w klastrze, co można zrobić za pomocą programu SQL Server 2012 i nowszych. Innym przypadkiem użycia jest po prostu przeniesienie plików tempdb z ich bieżącej lokalizacji na nowy dysk logiczny, który jest mapowany na macierz RAID 1 Optane na autonomicznej instancji serwera, niezależnie od używanej wersji SQL Server.

Te dyski Optane są stosunkowo niedrogie i oferują najszybszy obecnie dostępny typ tradycyjnej pamięci masowej w trybie blokowym, bez wyjątku. Są one przezroczyste dla SQL Server i będą działać w każdym systemie obsługującym gniazda PCIe 3.0 x4 jako karty rozszerzeń HHHL lub dyski podłączone przez U.2. Będą również działać ze starszymi wersjami SQL Server (o ile obsługują je Twój system operacyjny i sprzęt). Dość często można zauważyć duże opóźnienia zapisu na poziomie plików w plikach danych tempdb z DMV sys.dm_io_virtual_file_stats, więc proste przeniesienie plików danych tempdb do magazynu Optane jest jednym ze sposobów bezpośredniego rozwiązania tego problemu, co może być szybsze i znacznie łatwiejsze niż konwencjonalne dostrajanie obciążenia.

Jeśli widzisz problemy z rywalizacją o alokację w tempdb (co zwykle ma bardzo niewiele wspólnego z podstawową wydajnością dysków, na których znajduje się tempdb), powinieneś postępować zgodnie ze wskazówkami Pam Lahoud z Microsoftu w jej poście na blogu TEMPDB – Pliki i Trace Flags and Updates, Oh My! Posiadanie niezwykle szybkiego magazynu dla tempdb pośrednio pomoże w rozwiązywaniu problemów z rywalizacją o alokację w tempdb, ale bardzo ważne jest, aby postępować zgodnie z aktualnymi wskazówkami firmy Microsoft dotyczącymi konfiguracji tempdb, flag śledzenia i poprawek SQL Server, aby bardziej bezpośrednio rozwiązać problemy z rywalizacją o alokację w tempdb.

Innym możliwym zastosowaniem pamięci Intel Optane jest miejsce na przechowywanie plików dziennika transakcji bazy danych użytkownika, zwłaszcza jeśli masz wiele baz danych użytkowników, których plik dziennika transakcji znajduje się na tym samym dysku logicznym lub jeśli widzisz wysokie oczekiwania WRITELOG Twoja instancja. Jest to możliwa alternatywa dla korzystania z właściwości opóźnionej trwałości programu SQL Server (która wymaga programu SQL Server 2014 i wiąże się z ryzykiem utraty danych) lub korzystania z funkcji bufora utrwalonego dziennika programu SQL Server (która wymaga dodatku SP1 dla programu SQL Server 2016 i modułów NV-DIMM do obsługi 20MB plik dziennika transakcji „ogon dziennika”.

Mam również kilku klientów (z mniejszymi bazami danych), którzy po prostu przenieśli WSZYSTKIE swoje dane bazy danych użytkowników i pliki dzienników, wraz z plikami tempdb do magazynu Optane, z doskonałymi wynikami.

Wyniki testu CrystalDiskMark

Intel tworzy wysokiej klasy konsumencką wersję dysku Optane SSD DC P4800X, czyli Intel Optane 900P. Mają też nieco nowszy i szybszy Intel Optane 905P. Mam kartę Intel Optane 900P PCIe o pojemności 480 GB w mojej głównej stacji roboczej AMD Ryzen Threadripper 2950X, a także starszą opartą na NAND kartę 400 GB Intel SSD 750 PCIe. Szybki test CrystalDiskMark daje wyniki pokazane na rysunkach 1 i 2. Najbardziej odpowiednim testem jest transfer 4K z QD 1 z 1 wątkiem wykonania, jak pokazano w dolnym wierszu.

Rysunek 1:Wyniki 480 GB Intel Optane 900P

Rysunek 2:Wyniki 400 GB Intel SSD 750 PCIe NVMe

W przypadku zauważenia dużych opóźnień w pamięci masowej lub losowych wąskich gardeł we/wy związanych z obciążeniem można uzyskać bardzo zauważalną poprawę wydajności, po prostu przenosząc odpowiednie pliki programu SQL Server z miejsca, w którym się teraz znajdują, do pamięci masowej Intel Optane. Można to zrobić za stosunkowo niewielką kwotę i będzie działać z każdą wersją SQL Server. Może to pomóc w uzyskaniu dodatkowej żywotności istniejącego starszego serwera do czasu aktualizacji.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Unikanie wstrzykiwania SQL bez parametrów

  2. Zero impasu SQL z założenia - jakieś wzorce kodowania?

  3. Co to jest impas w SQL Server?

  4. Klauzula SQL WHERE dopasowująca wartości z końcowymi spacjami

  5. Rejestruj zmiany rekordów na serwerze SQL w tabeli audytu