Proč je výběr HW důležitý ?
Pokud podceníme analýzu při nákupu nového serveru, nevhodně zvolený HW bude mít zásadní dopad na práci databázového systému. Proto je před nákupem nového HW nutné pečlivě analyzovat typ aplikace a jakým způsobem bude pracovat s daty. Výběr správného HW má dopad na výkon celé aplikace :
- Ovlivní licenční model a cenu licence databázového systému
- Ovlivní výkon operací (single thread vs. parallelism)
- Ovlivní výkon jednotlivých typů dotazů (OLTP vs. DWH/DSS)
- Ovlivní memory management při zpracování operací
- Neoptimální výkon IO operací
Při výběru HW se nechte inspirovat :
- Standardizované benchmarky TPC-E, TPC-H atd. (http://www.tpc.org/)
- Případové studie dodavatele HW a SW
- Analýzou aktuálně používaného/staršího serveru
Význam výběru vhodného typu CPU
- Od verze SQL Server 2012 je Enterprise edice licencována na fyzická jádra CPU
- Bez ohledu na typ a výkon CPU je cena Core licence stejná
- AMD procesory s 6+ core jsou zvýhodněny cenou licence (25% sleva)
- Intel hyper-threading nemá vliv na cenu licence
- Pro databázový systém je důležitý výkon CPU při single-thread operacích
- Cena licence SQL Serveru obvykle mnohonásobně převyšuje cenu CPU
- Jaký smysl má licencovat jádra podprůměrně výkonného CPU ?
- Výběr procesoru ovlivní i další části serveru
- Obvykle různé typy CPU dle počtu procesorů, kterými lze server osadit (socket)
- Omezení fyzické paměti RAM (často mají procesory přímo vestavěný memory controller nebo/a ovlivňují maximální množství paměti)
- Ovlivní I/O operace
- Ovlivní budoucí možnost upgrade serveru (investice do novějšího typu CPU)
Základní přehled edicí SQL Serveru
Edice | HW limit | Licenční model | Cena 1 core | Cena Server + CAL |
---|---|---|---|---|
Enterprise | dáno OS | Core | $6.800 | N/A |
Business Intelligence | SSAS a SSRS dáno OS DE jako Standard |
Server + CAL | N/A | $8.600 Server $210 CAL |
Standard | 64 GB RAM 4 socket/16 cores |
Core i Server + CAL |
$1.800 | $900 $210 CAL |
- Cena licencí se může lišit dle verze SQL Serveru a dodavatele (ceny jsou orientační)
- Standard edice SQL 2014 má limit RAM zvýšen na 128 GB
- Je nutné licencovat minimálně 4 core na 1 socket
- DE = Database Engine, OS = Operating Systém, SSAS = Analysis Services, SSRS = Reporting Services
Typy úložiště pro databáze
- Interní disky serveru
- Direct Attached Storage (DAS)
- Storage area network (SAN)
- PCI-E internal storage (interní SSD – ideálně RAID 1)
- Server message block file share (SMB ve verzi 3.0)
- Použitelný od Windows Server 2012
Způsob práce s daty
Typy IO operací dle způsobu použití dat
- Sekvenční vs. Random
- Read vs. Write
- Operace s jednotlivými typy databázových souborů
- Čtení z datového soubor
- Zápis do transakčního logu
Způsob práce s daty zásadně ovlivní výběr HW. Poměrně obvykle se v praxi setkáváme s různými způsoby práce s daty což stíží finální výběr HW. Jednotlivé způsoby použití a práce s daty mohou být natolik rozdílné, že kladou specifické požadavky na jednotlivé komponenty serveru. Nesmíme zapomenout na to, že kromě aplikace bude s daty pracovat i správce systému při údržbě, zálohování nebo při zajištění HA/DR.
- OLTP
- Nejčastější způsob práce s daty
- Typický velkým množstvím krátkých a rychlých transakcí (řády jednotek sekund)
- Obvykle velký počet zápisu/změn v datech
- Změny v datech jsou logovány do souboru transakčního logu databáze
- Zápis do transakčního logu je sekvenční (a může být úzkým hrdlem systému)
- Zápis a čtení z datových souborů je obvykle typu random (čtení a zápis jednotlivých stránek – výkon random IO je důležitý)
- Obvykle jsou prováděny jedním vláknem a těží tedy z výkonu jednoho logického procesoru
- TPC-E OLTP benchmark pro porovnání a výběr HW
- DWH/DSS (DataWarehouse/Decision support system)
- Relační datový sklad
- Typický velkým množstvím náročných a dlouho trvajících SELECT operací
- Zásadně převažují read operace (write operace obvykle při importu dat)
- Vzhledem k náročnosti je obvykle každý jeden dotaz zpracovány více procesory (parallelism)
- Důležitým faktorem je počet logických procesorů (výkon jednoho procesoru je také důležitý)
- Kombinace sekvenčního i random čtení z datových souborů (výkon sequential IO je důležitý )
- OLAP
- Vzhledem ke zvyšujícímu se objemu dat je stále populárnější
- Velké množství MDX dotazů
- Zásadně převažují read operace z kostky
- Malé množství write operací (write především při procesování kostky)
- Dotazy jsou obvykle složité a těží tedy z vyššího počtu logických jader
- Důležitá je velikost paměti RAM
- Zápis dat do kostky je obvykle sekvenční
- Čtení dat z datového zdroje při procesování kostky je obvykle sekvenční
- Mix
- Kombinace jednotlivých typů není neobvyklá
- OLTP + Reporting
- DWH s častými update operacemi
- Mnoho databází s různým způsobem práce v jediné instanci
- Mnoho databází se stejným způsobem práce v jediné instanci
- Pokud má mnoho databází sekvenční přístup, celkově pak v oblasti IO provádějí random IO
- Kombinace jednotlivých typů není neobvyklá
- Database Maintenance
- Údržba a tvorba indexů
- Vyznačuje se sekvenčním čtením z datových souborů
- Sekvenční a random zápis do datových souborů
- Sekvenční zápis do transakčního logu
- Komprese indexu zvyšuje požadavky na CPU, ale snižuje IO zápis do datových souborů
- REBUILD indexu může být optimalizován Bulk Logged modelem, který sníží objem zápisů do transakčního logu
- REORGANIZE operace je vždy plně logována a není tedy rozdíl ve FULL/BulkLogged recovery modelu
- DBCC CHECKDB (kontrola integrity databáze)
- Sekvenční čtení z datových souborů
- Může být prováděno paralelně při rozdělení databáze na více datových souborů
- Zátěž na CPU
- Obvykle zápis do tempdb
- Sekvenční čtení z datových souborů
- Údržba a tvorba indexů
- Backup/Restore
- Sekvenční zápis do cíle zálohy
- Sekvenční čtení z datových souborů a transakčního logu
- Differential Backup může provádět spíše random čtení z datových souborů (dle změněné části databáze)
- Transaction Log backup provádí sekvenční čtení z transakčního logu databáze
- Nativní komprese při zálohování sníží objem sekvenčních IO zápisů, data jsou komprimována před umístěním do cíle zálohy (náročnější pro CPU o 5-10%)
- Full DB Restore operace provádí čtení ze zálohy a zápis do datových souborů/logu sekvenčně
- Differential a Log Restore provádějí více random zápisů do datových souborů databáze
- HA/DR (High Availability/Disaster Recovery)
- Clustering nemá vliv na IO operace
- Log shipping nemá zásadní vliv na IO operace (pouze s přihlédnutím k nutnosti zálohy logu a kopírování zálohy)
- Database Mirroring
- Čtení z transakčního logu Principal serveru
- Zápis do transakčního logu Mirror serveru a následné přehrávání transakcí
- Transakční replikace
- Čtení z transakčního logu publikované databáze
- Čtení a zápis do databáze Distribution (pozor na lokálního distributora)
- AlwaysOn Availability Groups
- Čtení z transakčního logu databází primární repliky
Množství a náročnost operací
- Performance čítače
- Transaction/sec
- Batch Requests/sec
- Počet současně pracujících uživatelů (aplikačních připojení do databázového systému)
- Počet hostovaných databází
- Vyšší počet hostovaných databází způsobuje random IO operace
- Velikost databází
- Požadavky na diskový prostor, uložení záloh apod.
- Ovlivní memory manegement
- Množství změn v datech ovlivní generování zápisů do transakčního logu (MB/sec)
Výběr procesoru dle typu operací
- OLTP
- Důležitý je výkon jednoho jádra
- DWH/DSS
- Klade důraz na počet jader
- OLAP
- Důležitý je jak počet jader tak i výkon jednoho jádra
Výběr serveru dle počtu socketů
- Počet socketů se obvykle váže k potřebě škálovatelnosti systému
- Server s více sockety neznamená, že je server rychlejší
- 2 socket servery jsou z důvodu rozšířenosti obvykle osazovány novějšími a rychlejšími procesory
- 2 socket servery jsou obvykle výkonnější než více socketové servery v jedno vláknových operacích
- 2 socket servery jsou obvykle cenově dostupné a poskytují dostatečný výkon pro většinu typů operací
- 2 x 2 socket servery jsou výkonnější než 1 x 4 socket server
- Cena 4+socket server roste nelineárně
Co rozhoduje o ceně celkového řešení ?
- Cena HW samotného serveru
- # socket, typ a model CPU, RAM
- Storage
- Úložiště pro databáze a zálohy
- Komprese dat (Enterprise edice) a komprese záloh (Standard edice) může snížit požadavky na storage
- Cena licence SQL Serveru
- V závislosti na edici
- Podporovaný HW (RAM, Socket/core)
- Podporované funkce databázového systému
- Obvykle cena licence SQL Serveru výrazně převyšuje cenu HW Serveru
- Volba vhodného typu procesoru je zásadní vzhledem k licenčnímu modelu
- Logická jádra technologie hyper-threading nejsou licencována a dokáží zvýšit výkon o 20-30%
- V závislosti na edici
Intel nebo AMD ?
- Procesory Intel jsou jedničkou na poli výkonu single-thread operací
- Oproti AMD mají obvykle méně jader a mají vyšší pořizovací cenu
- Procesory AMD jsou levnější, mají obvykle více jader, která mají nižší výkon
- Při licencování AMD procesorů na jádra je sleva 25%
- Ani tento fakt nezvrátí výrazně vyšší finanční náklady licencí SQL Server per core
- AMD procesory volíme pouze tehdy, kdy nelicencujeme per core, požadujeme velký počet core s nižším výkonem
- Při licencování AMD procesorů na jádra je sleva 25%
- Protože jsou ceny i dražších Intel CPU zanedbatelné vzhledem k celkové ceně řešení, Intel procesory jsou většinou jasnou volbou
Typ Intel procesoru dle typu operací
- Two-socket server (OLTP)
- Intel Xeon E5-2667 v2 (22nm Ivy Bridge-EP)
- 3.3 GHz, 25MB L3 cache, 8 GT/s QPI
- 8 cores + hyper-threading, 4GHz Turbo boost
- 4 memory chanels, 768 GB max memory
- nebo Xeon E5-2643 v2 (3.5GHz, 6 core)
- Intel Xeon E5-2667 v2 (22nm Ivy Bridge-EP)
- Two-socket server (DW/DSS)
- Intel Xeon E5-2697 v2 (22 nm Ivy Bridge-EP)
- 2.7 GHz, 30MB L3 cache, 8GT/s QPI
- 12 cores + hyper-threading, 3.5GHz Turbo boost
- 4 memory chanels, 768 GB max memory
- Intel Xeon E5-2697 v2 (22 nm Ivy Bridge-EP)
Leave A Comment