sql >> Databáze >  >> RDS >> Sqlserver

Hierarchie technologie paměti/úložišť a SQL Server

Existuje staré přísloví sítě, které zní:„Problémy s šířkou pásma lze vyléčit penězi. Problémy s latencí jsou těžší, protože rychlost světla je pevná.“

Tradičně existují čtyři primární vrstvy v celkové hierarchii paměti a úložiště databázového serveru. Počínaje vrcholem pyramidy máte mezipaměť statické paměti s náhodným přístupem (SRAM), která je obvykle rozdělena mezi relativně malé, rychlé mezipaměti L1 a L2 pro každé fyzické jádro procesoru a větší, pomalejší, přímo na místě, sdílená L3 cache pro celý procesor. Například 14nm procesor Intel Xeon E7-8890 v4 (Broadwell-EX) má 64 KB na jádro L1 cache a 256 KB na jádro L2 cache, spolu s mnohem větší, ale pomalejší 60 MB L3 cache, která je sdílena napříč celým fyzickým procesorem. .

Druhou vrstvou je dynamická paměť s náhodným přístupem (DRAM) s licenční kapacitou až 4 TB se systémem Windows Server 2012 R2, až 24 TB se systémem Windows Server 2016 a s latencí v rozsahu nanosekund. SRAM i DRAM jsou nestálé, což znamená, že uchovávají data pouze při použití elektrického napájení.

Třetí vrstvou jsou SATA/SAS (NAND) SSD disky, s jednotlivými kapacitami do cca 4TB a latencí v řádu mikrosekund. Jedním omezujícím faktorem u starších SATA/SAS (NAND) SSD je skutečnost, že používají rozhraní SATA/SAS, které omezuje jejich celkovou šířku pásma v závislosti na verzi SATA/SAS, kterou používají. Jsou také omezeny použitím staršího protokolu AHCI, který má mnohem větší I/O režii a vyšší latenci než novější protokol NVMe. Čtvrtou vrstvou jsou starší pevné disky s magnetickým rotujícím médiem s individuální kapacitou až 10 TB a latencí v řádu milisekund.

Každá z těchto tradičních vrstev má vyšší latenci, ale nižší náklady na MB/GB a vyšší celkovou kapacitu, jak se pohybujete v hierarchii paměti/úložišť. Relativní latence těchto čtyř tradičních vrstev je uvedena v tabulce 1.

Rozhraní Typ Relativní latence (čtení)
Na jádře/na matrici CPU Cache SRAM 1x
Přímé připojení DDR4 DRAM 10x
PCIe NVMe nebo SATA/SAS AHCI SSD 100 000x
SAS/SATA HDD 10 000 000 x

Tabulka 1:Tradiční paměťové/úložné vrstvy

Nové vrstvy paměti/úložiště

V posledních několika letech jsme byli svědky zavedení a rostoucího používání PCIe SSD disků NVM Express (NVMe) založených na stávající technologii NAND flash. Ty mají typicky latence v rozsahu 50-100 mikrosekund. Používají také novější, mnohem efektivnější protokol NVMe a rozhraní PCIe, které poskytují mnohem lepší výkon než starší SAS/SATA SSD používající starý protokol AHCI.

V současné době společnost Hewlett Packard Enterprise (HPE) prodává 8GB moduly NVDIMM pro své servery HPE Proliant DL360 Gen9 a servery HPE Proliant DL380 Gen9. Tyto moduly mají 8 GB DRAM, která je podpořena 8 GB flash paměti za 899,00 $, což je docela drahé za gigabajt. Tyto dvoupaticové servery mají 24 paměťových slotů, z nichž každý podporuje až 128 GB tradičních DDR4 DIMM. Žádné sloty, které používáte pro moduly NVDIMM, nebudou k dispozici pro běžné využití paměti. Pro využití NVDIMM můžete použít maximálně 16 paměťových slotů, což vám dává maximální kapacitu 128 GB. Abyste získali oficiální podporu NVDIMM, musíte použít procesory Intel Xeon E5-2600 v4. Micron je naplánováno na vydání větší kapacity 16GB NVDIMM v říjnu 2016.

Zařízení IOPS Prům. latence (ns) MB/s
NVM Express SSD 14 553 66 632 56,85
Režim blokování NVDIMM 148 567 6 418 580,34
NVDIMM režimu DAX 1 112 007 828 4 343,78

Tabulka 2:Porovnání výkonu náhodného zápisu 4K (1 vlákno, QD1)

Údaje o výkonu v tabulce 2 pocházejí z prezentace společnosti Microsoft/Intel (Persistent Memory ve Windows) na IDF16 v San Franciscu za použití této metodiky testování výkonu:

  • Pracovní zátěž :4KB náhodné zápisy, 1 vlákno, 1 nevyřízený I/O, synchronní I/O, 1GB soubor, NTFS, 3s zahřívání, 7s doba měření
  • Hardware :HPE ProLiant DL380 Gen9, 2x Intel Xeon E5-2650L v3 @ 1.8GHz, 96GB RAM, 2x 8GB NVDIMM-N, 1x 1600GB NVMe SSD
  • Software :Předběžně vydaná sestavení WS 2016, interní I/O nástroj společnosti Microsoft

Existuje dobré video kanálu 9 s názvem Akcelerace výkonu SQL Server 2016 s trvalou pamětí v systému Windows Server 2016 s Lindsey Allen a Tobiasem Klimou. Ukázka ve videu ukazuje, jak SQL Server 2016 běžící na Windows Server 2016 podporuje režim DAX (s nespecifikovaným příznakem trasování). Jakmile Windows Server 2016 přejde na GA, příznak trasování nebude u budoucí verze SQL Serveru nutný.

Tyto nové vrstvy paměti se zařadí mezi tradiční paměť DRAM a SATA/SAS SSD.

Úložný svazek, který byl naformátován v režimu DAX, lze použít k hostování souboru protokolu transakcí SQL Server 2016 ve scénáři, kdy potřebujete absolutně nejlepší možný výkon zápisu a nechcete používat zpožděnou trvanlivost nebo OLTP v paměti. Dalším možným scénářem by bylo použití svazku DAX Mode k hostování vašich datových souborů tempdb, pokud byste měli zátěž, která extrémně zatěžovala tempdb.

Budoucí vrstvy paměti/úložiště

Koncem roku 2016/začátkem roku 2017 bychom se měli dočkat představení Intel Optane SSD využívajících protokol NVMe. Půjde o flashová úložná zařízení využívající technologii Intel/Micron 3D XPoint (vyslovováno jako cross-point), která budou fungovat na stávajících serverech. V interním testování Intel tato zařízení vykazují asi 10x nižší latenci a asi 10x vyšší IOPS než stávající, velmi výkonná PCIe NVMe SSD zařízení Intel DC P3700 Series.

V polovině/konci roku 2017 bychom se také měli dočkat uvedení nové formy trvalého DIMM, které lze použít jako perzistentní paměť s velmi velkou kapacitou nebo jako extrémně výkonné úložiště s nízkou kapacitou. Ty budou elektricky a fyzicky kompatibilní se současnými moduly DDR4 DIMM a budou podporovány na platformě procesorů Intel Xeon nové generace (platforma Skylake „Purley“). Tyto produkty budou také založeny na technologii Intel/Micron 3D XPoint. Tyto moduly Intel DIMM nabídnou až dvojnásobnou kapacitu systémové paměti za výrazně nižší cenu než tradiční DDR4 DRAM, za předpokladu, že to vaše platforma procesoru/serveru podporuje (a Microsoft po vydání Windows Server 2016 zvýší limit licenční paměti). Tyto moduly DIMM nebudou mít stejnou latenci jako tradiční DRAM (budou pomalejší), ale nabídnou mnohem nižší latenci než úložná zařízení PCIe NVMe.

Z širší perspektivy celého odvětví tato nová kategorie zařízení s trvalou pamětí (PM) nabídne energeticky nezávislé úložiště s výkonem blízkým DRAM. Zařízení PM jsou umístěna přímo na paměťové sběrnici, což jim poskytuje velmi nízkou latenci a velkou šířku pásma. Společnost Microsoft podporuje zařízení PM ve Windows 10 Anniversary Update a Windows Server 2016. Bude podporována nová třída svazku úložiště, která se nazývá svazek DAX (Direct Access Storage). Svazky DAX využívají soubory mapované v paměti, aby aplikacím poskytovaly přímý přístup k zařízením PM pro absolutně nejlepší výkon.

Jedním z důvodů, proč je režim DAX mnohem rychlejší, je to, že jakmile zmapujete oblast NVDIMM na svazek DAX, další interakce s tímto úložištěm zcela obcházejí zásobník úložiště. Je to doslova jen memcopy, aby data byla trvalá. To je spousta kódu, který nemusíte spouštět při každé interakci s úložištěm. To je další velmi významný přispěvatel k latenci (spolu s rychlostí světla). Svazky DAX jsou podporovány na NTFS a při formátování svazku musíte zvolit režim DAX. Aplikace (jako je SQL Server 2016) musí být upraveny (společností Microsoft), aby mohly podporovat a používat režim DAX, a také budete muset povolit příznak trasování.

Pro zpětnou kompatibilitu na hardwaru PM budou k dispozici také svazky v režimu blokování, které zachovávají veškerou stávající sémantiku úložiště. Všechny I/O operace projdou zásobníkem úložiště k ovladači disku PM. Díky tomu je blokový režim plně kompatibilní se stávajícími aplikacemi. Máte-li hardwarové zařízení PM s podporovaným operačním systémem, získáte v blokovém režimu významný úložný výkon bez jakékoli úpravy aplikace. To znamená, že verze SQL Server nižší úrovně budou moci používat svazky úložiště v režimu blokování.

Základem toho všeho je, že budeme mít mnohem větší flexibilitu a nové možnosti, jak navrhovat a konfigurovat vrstvy paměti a úložného subsystému během příštích 12–18 měsíců, pokud používáte SQL Server 2016 v systému Windows. Server 2016 a mají dostatek nového hardwaru, který může podporovat zařízení PM. Starší verze SQL Serveru budou moci používat svazky PM v blokovém režimu, pokud běží na Windows Server 2016. Starší hardware a starší verze Windows Serveru budou moci používat Intel Optane SSD. To nám dá mnoho dalších možností pro zlepšení výkonu úložiště!


  1. Django bulk_create s ignorováním řádků, které způsobují chybu IntegrityError?

  2. ORA-01264 ve fyzickém pohotovostním režimu

  3. Jak nainstalovat databázi Oracle na Windows

  4. docker postgres s počátečními daty není zachován přes potvrzení