Mitä on tallennustestaus? Tyypit, Concepts & Esimerkki
⚡ Älykäs yhteenveto
Tallennustilan testaus varmistaa, että sovellus kirjoittaa tietonsa oikeisiin hakemistoihin ja että sillä on riittävästi levytilaa odottamattomien sulkemisten välttämiseksi, samalla kun mitataan, kuinka nopeasti pohjana oleva tallennustila reagoi realistisen kuormituksen alla.
Mitä on tallennustestaus?
Varastoinnin testaus on eräänlainen ohjelmistotestaus, jota käytetään varmistamaan, tallentaako testattava ohjelmistosovellus asiaankuuluvat tiedot oikeisiin hakemistoihin ja onko sillä riittävästi tilaa estääkseen odottamattomat sulkeutumiset riittämättömän levytilan vuoksi. Sitä kutsutaan myös tallennustilan suorituskyvyn testaus.
Tekniikka sijoittuu tieteenalan ei-toiminnalliselle puolelle: kuten muutkin ei-toiminnallinen testaus, se ei kerro mitään siitä, tuottaako ominaisuus oikean vastauksen, ja kaikki siitä, pystyykö järjestelmä tuottamaan vastauksia datamäärän ja I/O-paineen kasvaessa.
Miksi tallennustestaus?
Tallennus on hitain kerros, johon useimmat sovellukset ovat kosketuksissa, joten sen heikkous ilmenee kaikkialla muualla. Neljä syytä oikeuttaa erillisen testisyklin.
- Hidas tallennustila tarkoittaa hitaita vasteaikoja, pitkiä kyselyitä ja sovellusten alhaisempaa käytettävyyttä.
- Hidas tallennustila on palvelininfrastruktuurin ylläpidon lisäkuormitus.
- Se auttaa selvittämään järjestelmän käytännön tallennusrajoitukset ennen käyttöönottoa.
- Se auttaa ymmärtämään, miten järjestelmä reagoi, kun laitteisto vaihdetaan tai päivitetään.
Alla oleva kaavio sijoittaa tallennustestauksen tähän kontekstiin – sovellus, tiedostojärjestelmä ja fyysinen laite sijaitsevat kaikki samalla polulla, ja viive missä tahansa polulla saavuttaa käyttäjän.
Säilytystestien tyypit
Käytössä on kolme lähestymistapaa, ja ne eroavat toisistaan pääasiassa siinä, kuinka läheisesti työmäärä muistuttaa todellista sovellusta.
- Sovelluksen testaus: Sovellusten testaus esimerkkikyselyillä tuotantoympäristön kaltaisessa ympäristössä.
- Sovelluksen simulointi: Testauksen suorittaminen kohdesovelluksen tavoin käyttäytyvällä standardiohjelmistolla.
- Vertailu: Testauksen suorittaminen käyttämällä synteettistä, toistettavaa työmäärää luovaa standardinmukaista vertailuohjelmistoa.
Ensimmäinen antaa realistisimman ja vähiten siirrettävän tuloksen; kolmas antaa lukuja, joita voidaan vertailla eri laitteiden ja toimittajien välillä, mutta se kertoo vain vähän siitä, miten itse sovellus toimii.
Yhteinen testaus Concepts Mukana varastotestauksessa
Jokainen näistä kolmesta tyypistä vastaa erillistä aktiviteettijoukkoa, kuten alla on tiivistetty.
| Säilytystestien tyypit | Esimerkki yleisistä varastointitestaustoiminnoista |
| Sovelluksen testaus | Vertaa OLTP-vastausaikoja Vertaa erän ajoaikoja Vertaa jatkuvia suoratoiston hintoja |
| Sovellussimulointi | Testaa tietokantojen huipputallennustilaa Testaa huipputallennuskapasiteettia datan suoratoistoympäristöissä Viestien tai muiden yksisäikeisten sovellusten tallennusviiveen testaus |
| benchmarking | Tietojen korruption testaus |
Keskeiset mittarit tallennustestauksessa
Tallennustulokset raportoidaan pienen numerojoukon avulla. Yksittäisen numeron lukeminen yksinään on nopein tapa päätyä väärään johtopäätökseen, koska ne käyvät kauppaa keskenään.
| metrinen | Mitä se mittaa | Missä sillä on eniten merkitystä |
| IOPS | Sekunnissa suoritetut luku- ja kirjoitusoperaatiot koosta riippumatta | Transaktiotietokannat ja pienet satunnaiset kirjoitusoperaatiot |
| Viive | Aika yhden I/O-operaation aloittamisen ja suorittamisen välillä | Viestintä ja yksisäikeiset sovelluspolut |
| suoritusteho | Sekunnissa siirrettävän datan määrä, yleensä megatavuina sekunnissa | Eräajot, varmuuskopiot ja suoratoistotyökuormat |
| Jonon syvyys | Samanaikaisesti tehtyjen käsittelemättömien pyyntöjen määrä | Mikä tahansa ajo, jonka on heijastettava todellista samanaikaisuutta |
Jonon syvyyteen on kiinnitettävä erityistä huomiota. Yhden pyynnön tekeminen kerrallaan tuottaa tarkan yksittäisen pyynnön latenssin, mutta keinotekoisen alhaisen IOPS- ja läpäisykyvyn. Siksi laite voi näyttää hitaalta testissä ja nopealta tuotannossa, tai päinvastoin.
Kuinka suorittaa tallennustestaus
Säilytystestin luotettavuus riippuu sen suoritusolosuhteista. Alla oleva järjestys pitää tulokset toistettavissa.
- Vaihe 1) Määrittele tavoite. Päätä, onko kyseessä tietokannan valmiuden varmistaminen, läpimenoajan löytäminen vai kahden laitteen vertailu. Jokainen tavoite edellyttää erilaista työmäärää, ja niiden yhdistäminen tuottaa lukuja, joille kukaan ei voi toimia.
- Vaihe 2) Mitoita tietojoukko realistisesti. Välimuistiin mahtuva pieni työjoukko mittaa välimuistia, ei tallennustilaa. Määrän on oltava sama kuin tuotantodatan määrä tai ainakin suurempi kuin välimuisti reilusti.
- Vaihe 3) Valitse luku-/kirjoitusyhdistelmä ja -kuvio. Satunnainen ja peräkkäinen käyttö käyttäytyvät hyvin eri tavalla samalla laitteella, kuten myös 70/30 luku-kirjoitussekoitukset ja vain kirjoitus -purskeet. Käytä sekoitusta tuotannon seurannasta oletusarvon sijaan.
- Vaihe 4) Aseta jonon syvyys ja säikeiden määrä. Nämä ohjaavat laitteen saamaa samanaikaisuutta, joten tallenna ne jokaisen tuloksen yhteydessä – ilman niitä annettua lukua ei voida toistaa.
- Vaihe 5) Tyhjennä välimuistit ja anna laitteen lämmetä. Poista palvelimen ja laitteen välimuistit ajojen välillä ja hylkää sitten ensimmäinen aikaväli, jotta vertailussa käytetään vakiotilalukuja ensimmäisten sijaan.
- Vaihe 6) Juokse riittävän kauan. Lyhyet suoritusajat piilottavat kirjoituskatkoksen, joka ilmenee, kun SSD-levyn kirjoituspuskuri loppuu. Jatkuvat suoritusajat paljastavat sen.
- Vaihe 7) Valvo koko pinoa. Tallentaa prosessorin käyttöasteen, muistin ja verkon tiedot tallennuslaskurien rinnalla, jotta muualla olevaa pullonkaulaa ei tulkita virheellisesti tallennusrajoitukseksi.
- Vaihe 8) Toista ja vertaa. Suorita identtinen kokoonpano useammin kuin kerran ja säilytä lokit; suorituskyvyn vaihtelu koontiversioiden välillä näkyy vain tallennettua perustasoa vasten.
Koska sama periaate pätee kaikkiin kuormitukseen perustuviin mittauksiin, nämä mittaukset suunnitellaan yleensä yhdessä suorituskyvyn testaus ja ajoitettu ennen julkaisuehdokkaan jäädyttämistä.
Tallennustestaustyökalut
Työkalut voidaan jakaa kahteen ryhmään, ja useimmat tiimit tarvitsevat molempia.
- Synteettiset I/O-generaattorit. Apuohjelmat, kuten FIOIometer ja sysbench antavat tarkasti kuvatun työmäärän — lohkon koko, luku-/kirjoitussuhde, jonon syvyys ja kesto ilmoitetaan kaikki, joten suoritus voidaan toistaa täsmälleen toisella laitteella.
- Sovellustason lataustyökalut. Kuljettajat, kuten JMeter harjoittele itse sovellusta, jotta tallennustila näkee saman käyttöoikeusmallin, jonka oikeat käyttäjät luovat, mukaan lukien kyselysuunnitelmat ja indeksointikäyttäytymisen, jota synteettinen työkalu ei pysty toistamaan.
Operating-järjestelmän laskurit täydentävät kuvan. Olipa kuorman generoinut mikä tahansa työkalu, tallennustilaluvut on luettava prosessorin, muistin ja verkon laskurien rinnalla – useita tallennustilatestaustekniikoita, mukaan lukien vertailutestaus ja volyymitestaus, tulkitsevat tuloksen oikein, koska ne ovat riippuvaisia kyseisestä täyden pinon näkymästä.
Virheitä tallennustestausta suoritettaessa
Useimmat virheelliset tallennustulokset tracpalataan pieneen määrään vältettävissä olevia virheitä.
- Väärän palvelimen suorituskyvyn valvonta, joten numerot kuvaavat konetta, jota ei testata.
- Tallennuslaitteiden vertailu ilman palvelimen välimuistin tyhjentämistä ensin, mikä mittaa muistia levyn sijaan.
- Suorittimen käyttöasteen seurannan unohtaminen testauksen aikana, mikä piilottaa suorittimeen sidotun pullonkaulan tallennustilaan liittyvän oireen taakse.
- Tallennustilan suorituskyvyn testaaminen tiedostokopiointikomennoilla, jotka ovat yksisäikeisiä, välimuistiavusteisia ja eivät toistettavia.

