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í.

  • 💾 Také zvaný: Testování výkonu úložiště, protože rychlost je stejně důležitá jako správné umístění.
  • ⚠️ Proč je to důležité: Pomalé úložiště má za následek pomalé doby odezvy, dlouho běžící dotazy a nižší dostupnost aplikací.
  • 🧩 Tři typy: Testování aplikací, simulace aplikací a benchmarking, každé s vlastními aktivitami.
  • 📏 Základní metriky: IOPS, latence, propustnost a hloubka fronty se vždy čtou společně, nikoli izolovaně.
  • 🧪 Jak to funguje: Definujte cíle, upravte velikost datové sady, vyberte realistické kombinace čtení/zápisu a poté zvyšujte zátěž.
  • 🛠️ Nástroje: Syntetické generátory I/O produkují opakovatelná čísla, která příkazy pro kopírování souborů nikdy nedokážou.
  • 🚫 Obyčejné chyby: Monitorování nesprávného serveru, přeskočteping vymazání mezipaměti a ignorování využití procesoru.

Výukový program pro testování úložiště zahrnující typy, koncepty a běžné chyby

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ě.

Přehled testování úložiště znázorňující aplikaci, která zapisuje data přes souborový systém do úložného zařízení.

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é.

Nejčastější dotazy

Testování objemu zvětšuje množství dat, které aplikace uchovává, a sleduje zhoršování chování. Testování úložiště se zaměřuje na vrstvu zařízení pod ní a měří, jak rychle lze tato data zapisovat a číst zpět.

Každé umístění, kam aplikace zapisuje: datové adresáře, složky protokolů a dočasné složky, cíle nahrávání a cesty archivů. U každého z nich je třeba zkontrolovat, zda se soubor nachází na správném místě a zda je volné místo správně hlášeno.

Metriky zůstávají stejné, ale přidávají se limity IOPS, kredity burst a hluční sousedé. Běh musí být proveden dostatečně dlouho, aby se kredit burst vyčerpal, jinak naměřená hodnota odráží spíše dočasný limit než ustálený stav.

Modely strojového učení vyhodnocují normální křivky IOPS a latence a poté označují běhy, které se odchylují, než je překročena prahová hodnota. Stejné modely předpovídají růst kapacity, takže vyčerpání disku je předpovídáno, nikoli zjišťováno v produkčním prostředí.

GitHub Copilot rychle vytváří návrhy souborů úloh, obaly pro mazání mezipaměti a skripty pro analýzu výsledků. Tester stále poskytuje velikost bloku, hloubku fronty a trvání, protože tyto údaje pocházejí z monitorování produkce, nikoli ze šablony.

To je platný testovací případ, nikoli nehoda. Aplikace by měla varovat, řádně degradovat a zaznamenat stav, nikoli ukončit. Obnova ze stavu plného disku patří... testování obnovy.

Stav mezipaměti, hloubka fronty nebo délka běhu se obvykle lišily. Důležité je také podmíněné fungování zařízení – čerstvě naformátovaný SSD disk zapisuje rychleji než ten, který byl několikrát zaplněn a přepsán.

Obvykle jej spouštějí testeři výkonu, přičemž administrátoři infrastruktury nebo databáze dodávají konfiguraci zařízení a vzory přístupu k produkčnímu prostředí. Výsledek je obhajitelný pouze tehdy, když se obě strany shodnou, že pracovní zátěž byla realistická.

Shrňte tento příspěvek takto: