StorageReview.com

Benchmark OLTP v Sysbench

Benchmark aplikace Sysbench OLTP běží na databázi MySQL s úložným enginem InnoDB. Úkolem úložného enginu je spravovat rozhraní mezi databází na disku a aplikacemi, které čtou a zapisují data do a z úložného enginu. Úložný engine následně spravuje vlákna a protokoly I/O a uchovává mezipaměť v paměti, aby se minimalizoval přístup na disk. Následující tabulka poskytuje zjednodušený přehled o enginu.

Protože engine InnoDB uchovává v paměti mezipaměť nazývanou buffer pool, bude výkon přímo ovlivněn poměrem velikosti pracovní sady k velikosti buffer poolu. Jinými slovy, pokud je buffer pool dostatečně velký pro pojmutí pracovní sady nebo je pracovní sada dostatečně malá pro to, aby se vešla do buffer poolu, většina operací nebude nikdy vázána na I/O. Pokud je však databáze příliš velká na to, aby se vešla do paměti, pak bude výkon I/O diktovat doby odezvy transakcí a propustnost. Charakterizujeme výkon disku v této situaci, kdy se databáze nevejde do paměti, což vede ke zvýšenému I/O provozu z úložného enginu InnoDB.

Více vláken (počet závisí na konfiguraci databáze pro vysoce výkonné aplikace a pohybuje se od 32 do 128) náhodně čtou data ze záložního úložiště s velikostí bloku 16 kB. Tato čtení souvisí s databázovými dotazy, které vyžadují data ze záložního úložiště. Během zpracování čtení se automaticky ukládají do mezipaměti vyrovnávací paměti. Jakmile se vyrovnávací paměť zaplní, InnoDB používá politiku LRU (Least Recently Used) k vyřazení starších stránek, aby uvolnila místo pro novější data.

Zápisy do databáze jsou nejprve směrovány do transakčního protokolu a do fondu vyrovnávacích pamětí. Transakční protokol je sekvenčně zapisovaná kruhová vyrovnávací paměť, která se aktualizuje pro každou transakci zápisu. V závislosti na konfiguraci MySQL může tato aktualizace vést k okamžitému zápisu na disk, nebo může dočasně přetrvávat v paměti RAM jako vyrovnávací paměť, kterou souborový systém nakonec uloží na disk. Velikost této vyrovnávací paměti protokolu se liší, ale obvykle se pohybuje kolem 256 MB. Doporučená nastavení pro shodu s ACID vyžadují, aby se zápisy protokolu dostaly na disk při každém potvrzení změn v databázi. Tyto zápisy mají délku 4 kB.

Záznam provádí pouze „fyziologické“ zápisy, kde se zapisuje rozdíl mezi předchozími a novými daty. U původních dat InnoDB zapisuje do vyrovnávací paměti RAM, která musí být také asynchronně vyprázdněna. Proces zápisu dat zpět do souborového systému je konfigurovatelný a probíhá na pozadí. Zápisy mají také velikost 16K. Ve skutečnosti se jedná o dvojité zápisy, kdy engine nejprve zapíše data do mezilehlého umístění zvaného vyrovnávací paměť pro dvojitý zápis. Engine poté tato data zkopíruje do jejich konečného umístění v souborovém systému. To je nezbytné, aby se předešlo problému s „roztrženou stránkou“, kdy je 16KB stránka databáze částečně zapsána na disk v důsledku výpadku napájení nebo jiné katastrofické události.

Počátky benchmarku Sysbench

Testovací prostředí Sysbench jsme do naší laboratoře přinesli po několika rozhovorech se společností Micron o tom, jak simulují reálná aplikační prostředí MySQL pro testování a měření SSD. Vyvinuli testovací metodologii na bázi Sysbench poté, co zjistili, že syntetické benchmarky pro úložiště jen zřídka poskytují úplný přehled o tom, jak se disk bude chovat při zatížení konkrétní aplikace. Test Sysbench umožňuje společnosti Micron simulovat prostředí, které nejvěrněji reprezentuje standardní zatížení databáze MySQL, které je běžné v aplikacích, jako jsou Facebook, Craigslist a Booking.com.

Obzvláště úzce jsme spolupracovali s Moussou Ba, který byl spoluautorem tohoto článku. Moussa je softwarový inženýr ve vývojovém týmu PCIe společnosti Micron, kde jeho práce zahrnuje optimalizaci aplikačního a systémového softwaru pro vysoce výkonná I/O zařízení.

Benchmark OLTP v Sysbench

Sysbench je benchmark výkonu systému, který zahrnuje testovací profil pro OnLine Transaction Processing (OLTP). Test OLTP není aproximací testu OLTP, ale spíše skutečným benchmarkem založeným na databázi, který provádí transakční dotazy k instanci MySQL v prostředí CentOS.

Prvním krokem při nastavení benchmarku je vytvoření samotné databáze, což se provádí zadáním počtu tabulek v databázi a také počtu řádků v každé tabulce. V našem testu jsme definovali 100 tabulek s 10 miliony řádků, což vedlo k databázi s 1 miliardou záznamů. Tato databáze měla velikost 260 GB.

Sysbench má dva provozní režimy: výchozí režim, který čte a zapisuje do databáze, a režim pouze pro čtení. Výchozí režim R/W provede následující typy dotazů: 5 dotazů SELECT, 2 dotazy UPDATE, 1 dotaz DELETE a 1 dotaz INSERT. Z pohledu počtu I/O je pozorovaný poměr čtení/zápisu přibližně 75 % čtení a 25 % zápisů.

Testovací prostředí Sysbench

Úložná řešení jsou testována pomocí benchmarku Sysbench OLTP v testovací laboratoři StorageReview Enterprise s využitím samostatných serverů. V současné době používáme standardní servery PowerEdge R730 od společnosti Dell, které prokazují realistický výkon a solidní poměr cena/výkon. Pro připojení našeho serveru R730 k různým úložným produktům měníme pouze úložný adaptér nebo síťové rozhraní. PowerEdge R730 se osvědčil jako skvělá kompatibilita se zařízeními třetích stran, což z něj činí vynikající platformu pro toto rozmanité testovací prostředí. R730 také využívá výkonnou architekturu třídy Haswell od společnosti Intel, která nám dává výpočetní výkon k řádnému využití široké škály úložných nabídek a maximalizaci jejich výkonnostního potenciálu.

Benchmarkové prostředí Sysbench první generace

Lenovo ThinkServer RD630 – testovací platforma SATA/SAS/PCIe

  • Nejprodávanější model 2594-ABU
  • Dva procesory Intel E5-2650 (2.0 GHz, 8 jader, 20 MB mezipaměti)
  • 128 GB RAM (8 GB x 16 DDR3, 64 GB na procesor)
  • 100GB mikronů SSD disk RealSSD P400e (přes LSI 9207-8i) Bootovací disk
  • 960GB Micron M500 (přes 9207-8i) předpřipravené úložiště databáze
  • CentOS 6.3 64bitový
  • Percona XtraDB 5.5.30-rel30.1
    • Databázové tabulky: 100
    • Velikost databáze: 10 000 000
    • Vlákna databáze: 32
    • Vyrovnávací paměť RAM: 24 GB

Benchmarkové prostředí Sysbench druhé generace

Dell PowerEdge R730 – testovací platforma SATA/SAS/PCIe

  • Dva procesory Intel E5-2690 v3 (2.6 GHz, 12 jader, 30 MB mezipaměti)
  • 256 GB RAM (16 GB x 16 DDR4, 128 GB na procesor)
  • 100GB bootovací SSD, 480GB databázový SSD
  • 2 x adaptér Mellanox ConnectX-3 InfiniBand
  • 2 x Dvouportový adaptér Emulex 16GB FC HBA
  • 2 x Dvouportová síťová karta Emulex 10GbE
  • CentOS 6.6 64bitový
  • Percona XtraDB 5.5.30-rel30.1
    • Databázové tabulky: 100
    • Velikost databáze: 10 000 000
    • Vlákna databáze: 32
    • Vyrovnávací paměť RAM: 24 GB

Virtualizovaný 4uzlový cluster Dell PowerEdge R730 v Sysbench

  • Osm procesorů Intel E5-2690 v3 pro 249 GHz v clusteru (dva na uzel, 2.6 GHz, 12 jader, 30 MB mezipaměti)
  • 1 TB RAM (256 GB na uzel, 16 GB x 16 DDR4, 128 GB na procesor)
  • Bootování z SD karty (Lexar 16GB)
  • 4 x adaptér Mellanox ConnectX-3 InfiniBand (vSwitch pro vMotion a síť virtuálních strojů)
  • 4 x Dvouportový adaptér Emulex 16GB FC HBA
  • 4 x Dvouportová síťová karta Emulex 10GbE
  • VMware ESXi vSphere 6.0 / Enterprise Plus 8 procesory

Hlavním cílem této platformy je zdůraznit, jak si podnikové úložiště vede v reálném podnikovém prostředí a s danou pracovní zátěží, namísto spoléhání se na syntetické nebo pseudosyntetické pracovní zátěže. Syntetické generátory pracovní zátěže skvěle ukazují, jak dobře si úložná zařízení vedou s kontinuálním syntetickým vzorem I/O, ale nezohledňují žádné další vnější proměnné, které by osvětlovaly, jak zařízení skutečně fungují v produkčním prostředí. Syntetické generátory pracovní zátěže mají tu výhodu, že opakovaně ukazují čistý vzorec I/O, ale nikdy nereplikují skutečné produkční prostředí. Zavedení výkonu aplikací nad úložné produkty začíná ukazovat, jak dobře úložiště interaguje s ovladači, lokálním operačním systémem, testovanou aplikací, síťovým zásobníkem, síťovým přepínáním a externími servery. To jsou proměnné, které syntetický generátor pracovní zátěže jednoduše nemůže zohlednit, a jsou také řádově náročnější na zdroje a infrastrukturu, pokud jde o vybavení potřebné k provedení tohoto konkrétního benchmarku.

Celkové výsledky výkonu Sysbench

Pomocí benchmarku Sysbench OLTP testujeme širokou škálu úložných řešení, která splňují minimální požadavky testovacího prostředí. Aby bylo úložné zařízení kvalifikováno pro testování, musí mít použitelnou kapacitu přesahující 260 GB a musí být uzpůsobeno pro provoz v náročných podnikových podmínkách. Lokálně připojená úložná zařízení, jako jsou SAS, SATA a PCIe SSD, jsou testována na serveru typu hole-metal s jednou instancí Sysbench. Novější platformy SAN a hyperkonvergované platformy provozují současně 4, 8, 12 nebo 16 virtuálních počítačů, aby se ukázalo, jak dobře na každé z nich funguje více úloh současně. Tato testovací metodologie pomáhá demystifikovat srovnání výkonu mezi novějšími hyperkonvergovanými systémy a tradičními úložnými poli SAN.

Výsledky výkonu hyperkonvergovaného / virtualizovaného SAN Sysbench (agregace 16 virtuálních strojů)

Přístroj 32vláknový agregát TPS Průměrná doba odezvy (ms) Latence 99. percentilu (ms)
X-IO ISE 860
(4) Dell R730, X-IO ISE 860 AFA
(2) 10TB svazky
6625  80  418

Výsledky výkonu hyperkonvergovaného / virtualizovaného SAN Sysbench (agregace 12 virtuálních strojů)

Přístroj 32vláknový agregát TPS Průměrná doba odezvy (ms) Latence 99. percentilu (ms)
X-IO ISE 860
(4) Dell R730, X-IO ISE 860 AFA
(2) 10TB svazky
7160  54  177

Výsledky výkonu hyperkonvergovaného / virtualizovaného SAN Sysbench (agregace 8 virtuálních strojů)

Přístroj 32vláknový agregát TPS Průměrná doba odezvy (ms) Latence 99. percentilu (ms)
X-IO ISE 860
(4) Dell R730, X-IO ISE 860 AFA
(2) 10TB svazky
6568  39  83
VMware VSAN (ESXi 6.0)
(4) Dell R730xd, 80 1.2TB pevných disků, 16 800GB SSD disků
4259  60  131

Výsledky výkonu hyperkonvergovaného / virtualizovaného SAN Sysbench (agregace 4 virtuálních strojů)

Přístroj 32vláknový agregát TPS Průměrná doba odezvy (ms) Latence 99. percentilu (ms) Maximální latence (ms)
DotHill Ultra48 Hybrid
(4) Dell R730, hybridní DotHill Ultra48
(2) 14diskové RAID1 pooly, 40 1.8TB HDD, 8 400GB SSD disků
4645  28  51  676
X-IO ISE 860
(4) Dell R730, X-IO ISE 860 AFA
(2) 10TB svazky
4424  29  57  983
VMware VSAN (ESXi 6.0)
(4) Dell R730xd, 80 1.2TB pevných disků, 16 800GB SSD disků
2830  45  94  480
Nutanix NX-8150 (ESXi 6.0)
(4) NX-8150, 80 1TB HDD, 16 800GB SSD disků
Svazek databáze RAID0 x 4 vDisk
2390  54  173  4784
Nutanix NX-8150 (ESXi 6.0)
(4) NX-8150, 80 1TB HDD, 16 800GB SSD disků
Výchozí nasazení databáze
1422  90  216  5508

Výsledky výkonu akcelerátoru aplikací PCIe / Multi-SSD/HDD RAID v Sysbenchu

Přístroj Průměrný TPS při 32 vláknech Průměrná doba odezvy Latence 99. percentilu
Huawei ES3000 2.4TB
1x MLC PCIe SSD
2734.69  11.7  19.84
Huawei ES3000 1.2TB
1x MLC PCIe SSD
2615.12  12.23  21.80
Fusion ioDrive2 Duo 2.4 TB
1x MLC PCIe SSD
2521.06  12.69  23.92
Micron P320h 700GB
1x SSD disk SLC PCIe
2443.56  13.09  22.45
Micron P420m 1.4TB
1x MLC PCIe SSD
2361.29  13.55  25.84
Fusion ioDrive2 1.2 TB
1x MLC PCIe SSD
2354.06  13.59  29.35
Virident FlashMAX II 2.2 TB
1x MLC PCIe SSD
2278.11  14.04  26.04
LSI Nytro WarpDrive 800GB
1x MLC PCIe SSD
1977.67  16.18  39.94
LSI Nytro WarpDrive 400GB
1x MLC PCIe SSD
1903.14  16.81  39.30

Výsledky pro jednotlivé SAS / SATA SSD disky

Přístroj Průměrný TPS při 32 vláknech Průměrná doba odezvy Latence 99. percentilu
Toshiba HK3R2 960GB
1x MLC SATA
1673.23 19.12 49.65
SanDisk CloudSpeed ​​Eco 960GB
1x cMLC SATA
1556.99 20.55 49.05
Intel S3700 800GB
1x eMLC SATA
1488.71  21.49  40
Toshiba PX02SM 400GB
1x eMLC SAS (6 Gb/s)
1487.03 21.52 62.02
Smart Optimus 400GB
1x eMLC SAS
1477.1 21.66 52.69
OCZ Talos 2 C 480GB
MLC SAS x 1
1438.7 22.24 47.32
OCZ Intrepid 3600 400GB
1x eMLC SAS
1335.3 23.96 48.42
OCZ Talos 2 R 400GB
1x eMLC SAS
1421.15 22.51 45.06
SanDisk Extreme 480GB
1x MLC SATA
1303.48 24.55 53.56
STEC s842 800GB
1x eMLC SAS
1293.56  24.74  67.20
Intel S3500 512GB
1x eMLC SATA
1,287.65 24.85 64.15
Intel S3500 480GB
1x eMLC SATA
1241.59  25.77  54.27
Seagate 600 Pro 400GB
1x eMLC SATA
1198.2  26.7  62.69
Hitachi SSD400S.B 400GB
SLC SAS x 1
1191.47  26.85  47.87
OCZ Vector 512GB
1x MLC SATA
1130.03  28.32  62.67
SanDisk Extreme II 480GB
1x MLC SATA
981.34  32.61  102.58
Hitachi SSD400M
1x eMLC SAS
878.9  36.41  68.03
Toshiba eSSD
SLC SAS x 1
758.41  42.19  140.59
Micron M500 480GB
1x MLC SATA
668.6  47.86  461.80