Co je to testování úložiště? Typy, Concepts & Příklad
⚡ Chytré shrnutí
Testování úložiště ověřuje, zda aplikace zapisuje svá data do správných adresářů a má dostatek místa na disku, aby se zabránilo neočekávanému ukončení, a zároveň měří, jak rychle podkladové úložiště reaguje při realistickém zatížení.
Co je testování úložiště?
Testování úložiště je typ testování softwaru, který se používá k ověření, zda testovaná softwarová aplikace ukládá relevantní data do správných adresářů a zda má dostatek místa, aby se zabránilo neočekávanému ukončení z důvodu nedostatku místa na disku. Také se mu říká testování výkonu úložiště.
Tato technika se nachází na nefunkční stránce disciplíny: stejně jako jiné formy nefunkční testování, neříká nic o tom, zda funkce generuje správnou odpověď, ale vše o tom, zda systém dokáže i nadále generovat odpovědi s rostoucím objemem dat a tlakem na I/O.
Proč testování úložiště?
Úložiště je nejpomalejší vrstva, které se většina aplikací dotýká, takže slabina se projevuje všude jinde. Čtyři důvody ospravedlňují vyhrazený testovací cyklus.
- Pomalé úložiště znamená pomalé doby odezvy, dlouho běžící dotazy a nižší dostupnost aplikací.
- Pomalé úložiště představuje režijní náklady na údržbu serverové infrastruktury.
- Pomáhá zjistit praktické limity úložiště systému před nasazením.
- Pomáhá pochopit, jak systém reaguje na výměnu nebo upgrade hardwarového zařízení.
Níže uvedený diagram zasazuje testování úložiště do tohoto kontextu – aplikace, souborový systém a fyzické zařízení se nacházejí na stejné cestě a k uživateli dochází se zpožděním kdekoli na této cestě.
Typy testování úložiště
Používají se tři přístupy, které se liší hlavně v tom, jak moc se pracovní zátěž podobá skutečné aplikaci.
- Testování aplikací: Testování aplikací s ukázkovými dotazy v prostředí podobném produkčnímu.
- Simulace aplikace: Provádění testování pomocí standardního softwaru, který se chová podobně jako cílová aplikace.
- Srovnávání: Provádění testování pomocí standardního benchmarkingového softwaru, který generuje syntetickou, opakovatelnou pracovní zátěž.
První nabízí nejrealističtější a nejméně přenositelný výsledek; třetí uvádí čísla, která lze porovnávat napříč zařízeními a dodavateli, ale říká jen málo o tom, jak se bude samotná aplikace chovat.
Běžné testování Concepts Zapojeno během testování skladování
Každý z těchto tří typů odpovídá odlišnému souboru aktivit, jak je shrnuto níže.
| Typy testování úložiště | Příklad běžných činností testování úložiště |
| Testování aplikací | Porovnejte doby odezvy OLTP Porovnejte dávkové doby běhu Porovnejte trvalé rychlosti streamování |
| Simulace aplikací | Otestujte špičkové úložiště IOPS pro databáze Testovací špičková propustnost úložiště pro prostředí streamování dat Testovací latence úložiště pro zasílání zpráv nebo jiné jednovláknové aplikace |
| Benchmarking | Testování na poškození dat |
Klíčové metriky v testování úložišť
Výsledky ukládání jsou prezentovány pomocí malé sady čísel. Čtení kteréhokoli z nich samotného je nejrychlejší způsob, jak dojít k chybnému závěru, protože se vzájemně mění.
| metrický | Co měří | Kde na tom nejvíce záleží |
| IOPS | Operace čtení a zápisu provedené za sekundu, bez ohledu na velikost | Transakční databáze a malé náhodné zápisy |
| Latence | Doba mezi zahájením a dokončením jedné I/O operace | Cesty pro zasílání zpráv a jednovláknové aplikace |
| Propustnost | Objem dat přenesených za sekundu, obvykle v MB/s | Dávkové běhy, zálohy a streamování úloh |
| Hloubka fronty | Počet nevyřízených žádostí vydaných současně | Jakýkoli běh, který musí odrážet skutečnou souběžnost |
Zvláštní pozornost si zaslouží hloubka fronty. Vydávání jednoho požadavku najednou sice vede k přesné latenci jednoho požadavku, ale k uměle nízké hodnotě IOPS a propustnosti, což je důvod, proč se zařízení může v testu jevit pomalé a v produkčním prostředí rychlé, nebo naopak.
Jak provést testování úložiště
Test úložiště je důvěryhodný jen tak, jak důvěryhodný jsou podmínky, za kterých proběhl. Následující postup zajišťuje opakovatelnost výsledků.
- Krok 1) Definujte cíl. Rozhodněte, zda se běh týká prověřování připravenosti databáze, hledání maximální propustnosti nebo porovnávání dvou zařízení. Každý cíl implikuje jinou pracovní zátěž a jejich smíchání vede k číslům, se kterými nikdo nemůže reagovat.
- Krok 2) Nastavte realistickou velikost datové sady. Pracovní sada dostatečně malá na to, aby se vešla do mezipaměti, měří objem mezipaměti, nikoli úložiště. Shodujte objem produkčních dat nebo alespoň značně překračujte velikost mezipaměti.
- Krok 3) Vyberte kombinaci čtení/zápisu a vzor. Náhodný a sekvenční přístup se na stejném zařízení chovají velmi odlišně, stejně jako mixy čtení a zápisu 70/30 a dávkové zápisy pouze pro zápis. Mix se používá z produkčního monitorování, nikoli z výchozího nastavení.
- Krok 4) Nastavte hloubku fronty a počet vláken. Tyto parametry řídí, kolik souběžných výstupů se dostane k zařízení, proto je zaznamenejte s každým výsledkem – údaj uvedený bez nich nelze reprodukovat.
- Krok 5) Vymažte mezipaměti a zahřejte se. Mezi jednotlivými spuštěními odstraňte mezipaměti serveru a zařízení a poté první interval zahoďte, aby se porovnávala ustálená čísla, nikoli čísla z prvního kontaktu.
- Krok 6) Běhejte dostatečně dlouho. Krátké běhy skrývají překážku při zápisu, která se objeví, když SSD vyčerpá veškerou svou vyrovnávací paměť pro zápis. Dlouhodobé běhy ji odhalují.
- Krok 7) Monitorujte celý zásobník. Zaznamenávejte využití procesoru, paměti a sítě spolu s čítači úložiště, aby úzké hrdlo jinde nebylo zaměněno za limit úložiště.
- Krok 8) Opakujte a porovnejte. Spusťte stejnou konfiguraci vícekrát a uchovávejte protokoly; posun výkonu mezi sestaveními je viditelný pouze v porovnání s uloženou základní hodnotou.
Protože stejná disciplína platí pro jakékoli měření řízené zatížením, jsou tyto běhy obvykle plánovány společně s testování výkonu a naplánováno před zmrazením kandidáta na vydání.
Nástroje pro testování úložiště
Nástroje se dělí do dvou skupin a většina týmů potřebuje obě.
- Syntetické generátory I/O. Pomůcky jako např FioIometer a sysbench vydávají přesně popsanou pracovní zátěž – deklaruje se velikost bloku, mix čtení/zápisu, hloubka fronty a doba trvání, takže spuštění lze přesně opakovat na jiném zařízení.
- Nástroje pro načítání na úrovni aplikace. Řidiči jako například JMeter procvičovat samotnou aplikaci, aby úložiště vidělo stejný přístupový vzorec, jaký vytvářejí skuteční uživatelé, včetně plánů dotazů a chování indexu, které syntetický nástroj nedokáže reprodukovat.
OperaČítače ting-system doplňují obraz. Ať už nástroj generuje zátěž jakýkoli, údaje o úložišti je nutné číst vedle čítačů procesoru, paměti a sítě – existuje několik technik testování úložiště, včetně benchmarkové testování a objemové testování, spoléhejte se na tento full-stack pohled, aby výsledek správně interpretovali.
Chyby při testování úložiště
Většina neplatných výsledků ukládání traczpět k malému počtu chyb, kterým se dalo předejít.
- Monitorování výkonu nesprávného serveru, takže čísla popisují stroj, který není testován.
- Porovnávání úložných zařízení bez předchozího vymazání mezipaměti serveru, které měří paměť spíše než disk.
- Zapomínání na sledování využití procesoru během testování, což skrývá úzké hrdlo vázané na procesor za příznakem ve tvaru úložiště.
- Testování výkonu úložiště pomocí příkazů pro kopírování souborů, které jsou jednovláknové, s asistencí mezipaměti a neopakovatelné.

