sql >> Databáze >  >> RDS >> Database

Sekvenční propustné rychlosti a posuvy

Už nějakou dobu mluvím o důležitosti výkonu sekvenční propustnosti pro SQL Server. Sekvenční propustnost je kriticky důležitá pro mnoho běžných operací na serveru SQL Server, včetně:

  1. Úplné zálohování a obnovení databáze
  2. Vytváření a údržba indexu
  3. Inicializace snímků replikace a odběrů
  4. Inicializace replik AlwaysOn AG
  5. Inicializace zrcadel databáze
  6. Inicializace sekundárních protokolů odesílání
  7. Úlohy dotazů na relační datový sklad
  8. Operace ETL v relačním datovém skladu

Navzdory důležitosti sekvenční propustnosti pro SQL Server stále vidím mnoho lidí, kteří se zaměřují pouze na náhodném I/O výkonu a latenci, přičemž do značné míry ignoruje výkon sekvenční propustnosti. Když uvažujete o výkonu sekvenční propustnosti, musíte vzít v úvahu úplnou cestu dat, od jejich uložení na úložném médiu až po jejich spotřebování jádry procesoru.

V závislosti na tom, jaký typ technologie úložiště používáte, může být připojen k vašemu hostitelskému serveru pomocí karty síťového rozhraní Ethernet (NIC) nebo karty hostitelského kanálu InfiniBand (HCA). Tento typ připojení je nejběžnější pro sítě iSCSI SAN a pro sdílení souborů SMB (Remote Server message block) 3.0. Microsoft TechNet má na toto téma dobrou referenci, nazvanou Zlepšení výkonu souborového serveru pomocí SMB Direct.

Teoretická sekvenční propustnost jednoho zařízení NIC/HCA (na port) je znázorněna na obrázku 1:

Obrázek 1:Teoretická propustnost NIC/HCA

Pro případ, že by vás zajímalo, co znamená InfiniBand (QDR) nebo Infiniband (FDR), InfiniBand Trade Association spravuje plán InfiniBand, který ukazuje historii a plánované pokroky v šířce pásma InfiniBand v příštích několika letech. Infiniband má seznam akronymů, které popisují relativní výkon odkazu InfiniBand, jak je uvedeno níže:

  • SDR – Single Data Rate
  • DDR – Dvojitá přenosová rychlost
  • QDR – Quad Data Rate
  • FDR – čtrnáctidenní přenosová rychlost
  • EDR – Enhanced Data Rate
  • HDR – vysoká přenosová rychlost
  • NDR – Next Data Rate

Tradiční sítě Fibre Channel (FC) SAN obvykle používají jeden nebo více adaptérů hostitelské sběrnice (HBA), které mají jeden nebo více portů pro optické kabely, které se připojují k přepínači FC nebo přímo k samotné FC SAN. Stále je poměrně vzácné vidět 16Gb FC HBA v širokém měřítku, takže většina hostitelských serverů má stále buď 4Gb nebo 8Gb FC HBA.

Teoretická sekvenční propustnost jednoho zařízení HBA (na port) je znázorněna na obrázku 2:

Obrázek 2:Teoretická propustnost HBA

Bez ohledu na to, jaký typ rozhraní nebo technologie používáte, musíte mít na paměti, do jakého slotu rozšiřující sběrnice je na vašem hostitelském serveru zapojeno. V závislosti na stáří vašeho serveru a typu procesoru, který používá, to může mít obrovský dopad na celkovou šířku pásma, kterou může slot sběrnice podporovat. Sloty Peripheral Component Interconnect Express (PCIe) Gen 3 mají dvojnásobnou šířku pásma na jeden pruh než starší slot PCIe Gen 2. Můžete určit, kolik a jaký typ rozšiřujících slotů máte na svém hostitelském serveru, podle specifikací a dokumentace pro vaši značku a model serveru. Sloty PCIe Gen 3 zatím podporují pouze procesory Intel Xeon E3 v2, Xeon E3 v3, Xeon E5, Xeon E5 v2, Xeon E5 v3 a Xeon E7 v2. Cokoli staršího než toto bude mít sloty PCIe Gen 2, nebo možná dokonce sloty PCIe Gen 1, pokud je to extrémně staré (z počítačového hlediska).

Teoretická sekvenční propustnost jednoho slotu PCIe je znázorněna na obrázku 3:

Obrázek 3:Teoretická propustnost rozšiřujícího slotu

Od představení mikroarchitektury Intel Nehalem v roce 2008 všechny 2P a větší serverové procesory Intel podporují Intel QuickPath Interconnect (QPI) pro připojení mezi procesory a pamětí v serveru, což těmto novějším procesorům poskytuje podporu pro Non-Uniform Memory Access. (NUMA), který nahradil starší přední sběrnici (FSB). NUMA značně zlepšuje škálovatelnost s rostoucím počtem fyzických procesorů v systému, zvláště když máte v hostitelském systému čtyři nebo více fyzických procesorů.

Moderní procesory Intel mají integrované řadiče paměti, které podporují Intel QPI. Když se podíváte na specifikace konkrétního procesoru Intel v online databázi ARK, uvidíte jeho jmenovitý výkon QPI v GigaTransfers za sekundu (GT/s). GigaTransfer za sekundu je prostě jedna miliarda operací, které přenášejí data za sekundu.

Například moderní špičkový procesor Intel Xeon E5-2667 v3 (Haswell-EP) má rychlost Intel QPI 9,6 GT/s, zatímco starší nižší procesor Intel Xeon E5503 (Nehalem-EP) má Rychlost Intel QPI pouze 4,8 GT/s. Dokonce i mezi procesory ze stejné generace mikroarchitektury uvidíte rozdíly v jmenovité rychlosti Intel QPI. Například v 22nm rodině Haswell-EP je procesor Intel Xeon E5-2603 v3 nižší třídy ohodnocen rychlostí 6,4 GT/s, zatímco procesor vyšší třídy Intel Xeon E5-2660 v3 má rychlost 9,6 GT/s. Procesory Intel Xeon E5, E5 v2 a E5 v3 mají dvě připojení QPI na procesor, zatímco procesory řady Intel E7 a E7 v2 mají tři připojení QPI na procesor.

Teoretická sekvenční propustnost jednoho spojení Intel QPI je znázorněna na obrázku 4:

Obrázek 4:Teoretická propustnost Intel QPI

V závislosti na stáří vašeho hostitelského serveru, přesném procesoru, který používá, a typu, rychlosti a množství instalované paměti, budete mít pro každý paměťový modul k dispozici různé množství teoretické sekvenční propustnosti. Všechny moderní procesory Intel mají integrované paměťové řadiče, které řídí množství a frekvenci paměti, kterou bude procesor podporovat. Většina nejnovějších historických hostitelských serverů bude používat paměť DDR3, zatímco nejnovější generace procesorů Haswell-EP (řada Intel Xeon E5 v3) podporují paměti DDR4. Paměť DDR4 podporuje vyšší rychlosti, vyšší propustnost, vyšší hustotu paměti, nižší spotřebu energie a lepší spolehlivost ve srovnání s pamětí DDR3.

Teoretická sekvenční propustnost jednoho paměťového modulu je znázorněna na obrázku 5:

Obrázek 5:Teoretická propustnost paměťového modulu

Když se díváte na jednotlivé komponenty ve stávajícím nebo plánovaném novém systému, měli byste dávat pozor na neshodné komponenty, které mohou do systému zavádět umělá sekvenční úzká hrdla výkonu. Můžete mít například zbrusu nový server se špičkovými procesory, který je ochromen tím, že pro přístup k SAN používá 4Gb FC HBA. Dalším příkladem může být velmi rychlá paměťová karta PCIe flash nebo řadič RAID, který byl nainstalován do slotu PCIe 2.0 x4 s nízkou šířkou pásma, což uměle omezovalo celkovou sekvenční propustnost zařízení.

Vím, že to bylo mnoho technických informací, které je třeba strávit, zejména pro lidi, kteří nejsou hardwarovými nadšenci. Myslím, že hlavní myšlenkou, kterou byste si z tohoto článku měli odnést, je to, že sekvenční propustnost je docela důležitá pro mnoho běžných úloh a zátěží SQL Serveru. Nízkoúrovňové podrobnosti o procesorech, typech paměti, rozšiřujících slotech a rozšiřujících zařízeních ve skutečnosti hodně ovlivňují výkon sekvenční propustnosti, který získáte ze serveru a jeho úložného subsystému. Díky dobré sekvenční propustnosti je váš život jako databázového profesionála mnohem jednodušší a umožňuje vám podporovat vaši organizaci na mnohem vyšší úrovni.


  1. Jak změnit názvy tabulek MySQL na serveru Linux tak, aby nerozlišovaly malá a velká písmena?

  2. Co je Oracle SQL &PL/SQL? Vše, co začátečník potřebuje vědět

  3. Měsíce mezi dvěma daty

  4. MySQL DROP SLOUPEC