Protože máme spoustu databází, zajímá nás, jak dosáhnout jejich optimálního výkonu. Jedním z parametrů je i RAID konfigurace. Na Internetu se velmi často můžete setkat s informací, že RAID 5 je pro databáze zlo. Teoretické pozadí je celkem jednoduché. Při zápisu se musí načíst i blok z dalšího disku, aby se mohla vypočítat a zapsat parita. Ovšem stále jsme postrádali konkrétní čísla, jak moc špatná situace s RAID 5 je. Navíc obyčejné testy rychlosti čtení i zápisu na disk dopadly velmi podobně pro různé typy raidu. Nakonec jsme se rozhodli využít jeden aktuálně přeinstalovávaný stroj a porovnat RAID 5 a RAID 10.
Konfigurace stroje
Server byl osazen procesorem AMD Opteron 4184 se šesti jádry, 64GB RAM, řadičem PERC H700 (LSI MegaRAID SAS 2108) a databáze byla umístěna na poli vytvořeném ze čtyř disků Seagate Constellation ES.2 SAS s kapacitou 3TB a rychlostí 7 200 otáček za minutu.
Metodika
V našem případě se jednalo o test databáze PostgreSQL 9.4 na souborovém systému ext4. Jedná se sice o jeden specifický případ užití, ale odrážel naše aktuální potřeby. Pro měření byl použit nástroj pgbench, který provádí přímo transakce v databázi. Samotná metodika vychází z přednášky Tomáše Vondry na LinuxDays 2015. Autor se sice zaměřuje na porovnání jednotlivých souborových systémů, ale nástroj pgbench-auto se velmi dobře hodil i na tento test. Vzhledem k jiné konfiguraci stroje jsme použili měření s rozdílným počtem klientů, konkrétně 1, 3, 6 a 12, abychom zohlednili počet jader procesoru. Datasety zůstaly stejné. Malý má přibližně 200 MB, střední zabírá polovinu RAM (32 GB) a velký má dvojnásobek RAM (128 GB). Zároveň se testoval přístup read-only, což jsou pouze příkazy SELECT a read-write obsahující navíc INSERT a UPDATE. Každá kombinace běžela celkem třikrát a v grafech níže je uveden průměr z těchto tří běhů.
Výsledky
Na prvním grafu jsou vidět celkové výsledky, ale vzhledem k hustotě dat v dolní části grafu zatím vidíme pouze očekávané chování, kdy read-only měření jsou při malém a středním datasetu shodná na obou typech raidu.
Při velkém datasetu je v read-only přístupu vítězem již RAID 5, ale situace se otočí, jakmile se podíváme na read-write přístup. U malého datasetu jsou výsledky pro oba typy raidu v podstatě totožné, ale u středního můžeme pozorovat přibližně trojnásobnou rychlost u RAID 10.
U velkého datasetu již rozdíl není tak výrazný jako v předchozím případě, ale přibližně o 50% více transakcí na RAID 10 se bude hodit.
Závěr
Všechna měření jsou s výchozím nastavením souborového systému. Zkoušeli jsme i měření s nobarrier, writeback a dalšími přepínači, ale výsledky se lišily v jednotkách procent. Jsme si vědomi, že úzkým hrdlem byly pomalé disky, ale i tak jsou pro nás výsledky důležité pro další plánování. Pokud tedy potřebujete databázi na archivaci a generování výstupů, RAID 5 nemusí být problém, ale u živé databáze, kde se neustále zapisují nová data by měl být RAID 10 jasnou volbou.