Što je testiranje pohrane? Vrste, Concepts & Primjer
⚡ Pametni sažetak
Testiranje pohrane provjerava zapisuje li aplikacija svoje podatke u ispravne direktorije i ima li dovoljno prostora na disku kako bi se izbjegla neočekivana prekidanja, a istovremeno mjeri koliko brzo temeljna pohrana reagira pod realnim opterećenjem.
Što je testiranje pohrane?
Ispitivanje skladišta je vrsta testiranja softvera koja se koristi za provjeru pohranjuje li testirana softverska aplikacija relevantne podatke u odgovarajuće direktorije i ima li dovoljno prostora za sprječavanje neočekivanih prekida zbog nedovoljnog prostora na disku. Također se naziva testiranje performansi pohrane.
Tehnika se nalazi na nefunkcionalnoj strani discipline: poput drugih oblika nefunkcionalno testiranje, ne govori ništa o tome daje li značajka točan odgovor, već sve o tome može li sustav nastaviti proizvoditi odgovore kako raste količina podataka i pritisak ulazno/izlaznih operacija.
Zašto testiranje pohrane?
Pohrana je najsporiji sloj kojeg se većina aplikacija dotiče, pa se slabost tamo pojavljuje posvuda. Četiri razloga opravdavaju poseban ciklus testiranja.
- Spora pohrana znači sporo vrijeme odziva, dugotrajne upite i nižu dostupnost aplikacije.
- Spora pohrana predstavlja dodatni trošak za održavanje serverske infrastrukture.
- Pomaže u pronalaženju praktičnih ograničenja pohrane sustava prije implementacije.
- Korisno je razumjeti kako sustav reagira kada se hardverski uređaj zamijeni ili nadogradi.
Donji dijagram stavlja testiranje pohrane u taj kontekst - aplikacija, datotečni sustav i fizički uređaj nalaze se na istoj putanji, a kašnjenje bilo gdje na njoj stiže do korisnika.
Vrste testiranja pohrane
Koriste se tri pristupa, a razlikuju se uglavnom po tome koliko je radno opterećenje slično stvarnoj aplikaciji.
- Testiranje aplikacije: Testiranje aplikacija s primjerima upita u okruženju sličnom produkcijskom.
- Simulacija aplikacije: Provođenje testiranja korištenjem standardnog softvera koji se ponaša slično ciljnoj aplikaciji.
- Mjerenje performansi: Provođenje testiranja korištenjem standardnog softvera za mjerenje performansi koji generira sintetičko, ponovljivo opterećenje.
Prvi daje najrealniji rezultat i najmanje prenosiv; treći daje brojeve koji se mogu usporediti na različitim uređajima i dobavljačima, ali malo govori o tome kako će se sama aplikacija ponašati.
Uobičajeno testiranje Concepts Uključeno tijekom testiranja skladištenja
Svaka od te tri vrste odnosi se na zaseban skup aktivnosti, kao što je sažeto u nastavku.
| Vrste testiranja pohrane | Primjer uobičajenih aktivnosti testiranja pohrane |
| Testiranje aplikacije | Usporedite vremena odgovora OLTP-a Usporedite vremena izvođenja serije Usporedite postojane stope strujanja |
| Simulacija primjene | Testirajte vršnu pohranu IOPS za baze podataka Testiranje vršne propusnosti pohrane za okruženja strujanja podataka Testirajte latenciju pohrane za razmjenu poruka ili druge jednonitne aplikacije |
| Benchmarking | Testiranje na oštećenje podataka |
Ključne metrike u testiranju pohrane
Rezultati pohrane prikazuju se putem malog skupa brojeva. Čitanje bilo kojeg od njih samostalno najbrži je način da se dođe do pogrešnog zaključka, jer se međusobno razlikuju.
| metrički | Što mjeri | Tamo gdje je najvažnije |
| IOPS | Operacije čitanja i pisanja izvršene u sekundi, bez obzira na veličinu | Transakcijske baze podataka i mali nasumični zapisi |
| skrivenost | Vrijeme između početka i završetka jedne I/O operacije | Putanje poruka i jednonitnih aplikacija |
| propusnost | Količina podataka prenesenih u sekundi, obično u MB/s | Serijska izvršavanja, sigurnosne kopije i strujna opterećenja |
| Dubina reda čekanja | Broj neriješenih zahtjeva izdanih istovremeno | Bilo koje izvršavanje koje mora odražavati stvarnu konkurentnost |
Dubina reda čekanja zaslužuje posebnu pozornost. Izdavanje jednog zahtjeva istovremeno proizvodi točnu latenciju pojedinačnog zahtjeva, ali umjetno nisku brojku IOPS-a i propusnosti, zbog čega uređaj može izgledati sporo u testu, a brzo u produkciji ili obrnuto.
Kako izvršiti testiranje pohrane
Test pohrane je pouzdan samo onoliko koliko su pouzdani uvjeti pod kojima je proveden. Slijed u nastavku omogućuje ponovljivost rezultata.
- Korak 1) Definirajte cilj. Odlučite dokazuje li se izvođenjem spremnost baze podataka, pronalazi li se gornja granica propusnosti ili uspoređuju dva uređaja. Svaki cilj podrazumijeva drugačije radno opterećenje, a njihovo miješanje proizvodi brojke na koje nitko ne može reagirati.
- Korak 2) Realno odredite veličinu skupa podataka. Radni skup dovoljno malen da stane u predmemoriju mjeri predmemoriju, a ne pohranu. Uskladite volumen produkcijskih podataka ili barem znatno premašite veličinu predmemorije.
- Korak 3) Odaberite kombinaciju i uzorak čitanja/pisanja. Slučajni i sekvencijalni pristup ponašaju se vrlo različito na istom uređaju, kao i 70/30 kombinacije čitanja i pisanja te rafalni zapisi samo za pisanje. Uzmite kombinaciju iz nadzora produkcije, a ne iz zadane postavke.
- Korak 4) Postavite dubinu reda i broj niti. Oni kontroliraju koliko konkurentnosti dolazi do uređaja, stoga ih zabilježite sa svakim rezultatom - brojka navedena bez njih ne može se reproducirati.
- Korak 5) Očistite predmemoriju i zagrijte se. Izbriši predmemorije poslužitelja i uređaja između izvršavanja, a zatim odbaci prvi interval kako bi se uspoređivali brojevi u stabilnom stanju, a ne oni koji se uspoređuju prvi put.
- Korak 6) Trčite dovoljno dugo. Kratki zadaci skrivaju grešku pri pisanju koja se pojavljuje kada SSD iscrpi svoj međuspremnik za pisanje. Dugotrajni zadaci je otkrivaju.
- Korak 7) Pratite cijeli stog. Uz brojače pohrane zabilježite iskorištenost procesora, memorije i mreže kako se usko grlo negdje drugdje ne bi pogrešno protumačilo kao ograničenje pohrane.
- Korak 8) Ponovite i usporedite. Pokrenite istu konfiguraciju više puta i sačuvajte zapisnike; pomak performansi između verzija vidljiv je samo u odnosu na pohranjenu osnovnu vrijednost.
Budući da se ista disciplina primjenjuje na bilo koje mjerenje vođeno opterećenjem, ovi se prolazi obično planiraju zajedno s ispitivanje performansi i zakazano prije nego što se kandidat za izdanje zamrzne.
Alati za testiranje pohrane
Alati se svrstavaju u dvije skupine, a većini timova potrebne su obje.
- Sintetički I/O generatori. Uslužni programi kao što su Fio, Iometer i sysbench izdaju precizno opisano opterećenje - deklarirana je veličina bloka, kombinacija čitanja/pisanja, dubina reda i trajanje, tako da se izvršavanje može točno ponoviti na drugom uređaju.
- Alati za učitavanje na razini aplikacije. Vozači kao što su JMeter vježbati samu aplikaciju, tako da pohrana vidi isti obrazac pristupa koji stvaraju stvarni korisnici, uključujući planove upita i ponašanje indeksa koje sintetički alat ne može reproducirati.
OperaBrojači sustava ting upotpunjuju sliku. Bez obzira na alat koji generira opterećenje, brojke pohrane moraju se očitati pored brojača procesora, memorije i mreže - nekoliko tehnika testiranja pohrane, uključujući benchmark testiranje i ispitivanje volumena, oslanjaju se na taj full-stack prikaz kako bi ispravno interpretirali rezultat.
Pogreške prilikom testiranja pohrane
Većina nevažećih rezultata pohrane tracnatrag na mali broj izbježivih pogrešaka.
- Praćenje pogrešnih performansi poslužitelja, pa brojke opisuju stroj koji nije pod testiranjem.
- Uspoređivanje uređaja za pohranu bez prethodnog brisanja predmemorije poslužitelja, što mjeri memoriju, a ne disk.
- Zaboravljanje praćenja iskorištenosti procesora tijekom testiranja, što skriva usko grlo vezano uz procesor iza simptoma u obliku pohrane.
- Testiranje performansi pohrane s naredbama za kopiranje datoteka, koje su jednonitne, potpomognute predmemorijom i nisu ponovljive.

