Wat is opslagtesten? Soorten, Concepts & Voorbeeld
โก Slimme samenvatting
Opslagtesten controleren of een applicatie zijn gegevens naar de juiste mappen schrijft en voldoende schijfruimte heeft om onverwachte afsluitingen te voorkomen, terwijl tegelijkertijd wordt gemeten hoe snel de onderliggende opslag reageert onder realistische belasting.
Wat is opslagtesten?
Opslag testen Dit is een type softwaretest dat wordt gebruikt om te controleren of de te testen softwaretoepassing de relevante gegevens in de juiste mappen opslaat en of er voldoende ruimte is om onverwachte afsluitingen als gevolg van onvoldoende schijfruimte te voorkomen. Het wordt ook wel genoemd Prestatietesten van de opslag.
De techniek bevindt zich aan de niet-functionele kant van de discipline: net als andere vormen van niet-functionele testenHet zegt niets over de vraag of een functie het juiste antwoord oplevert, maar alles over de vraag of het systeem antwoorden kan blijven produceren naarmate het datavolume en de I/O-belasting toenemen.
Waarom opslagtesten?
Opslag is de traagste laag die de meeste applicaties gebruiken, waardoor een zwakte daar overal elders aan het licht komt. Vier redenen rechtvaardigen een aparte testcyclus.
- Trage opslag betekent trage reactietijden, langdurige query's en een lagere beschikbaarheid van applicaties.
- Trage opslag brengt extra kosten met zich mee voor het onderhoud van de serverinfrastructuur.
- Het is nuttig om de praktische opslaglimieten van het systeem te bepalen vรณรณr de implementatie.
- Het is nuttig om te begrijpen hoe het systeem reageert wanneer een hardwarecomponent wordt vervangen of geรผpgraded.
Het onderstaande diagram plaatst opslagtesten in die context: de applicatie, het bestandssysteem en het fysieke apparaat bevinden zich allemaal op hetzelfde pad, en een vertraging ergens op dat pad bereikt de gebruiker.
Soorten opslagtests
Er worden drie benaderingen gebruikt, die voornamelijk verschillen in de mate waarin de werklast overeenkomt met de daadwerkelijke toepassing.
- Toepassingstests: Applicatietesten met voorbeeldquery's in een productieachtige omgeving.
- Toepassingssimulatie: Het testen wordt uitgevoerd met behulp van standaardsoftware die zich op vergelijkbare wijze gedraagt โโals de doelapplicatie.
- benchmarking: De tests worden uitgevoerd met behulp van standaard benchmarksoftware die een synthetische, herhaalbare werkbelasting genereert.
De eerste methode levert het meest realistische resultaat op, maar is het minst draagbaar; de derde methode geeft cijfers die vergelijkbaar zijn tussen apparaten en fabrikanten, maar zegt weinig over hoe de applicatie zelf zal functioneren.
Gemeenschappelijke testen Concepts Betrokken tijdens opslagtesten
Elk van deze drie typen correspondeert met een aparte reeks activiteiten, zoals hieronder samengevat.
| Soorten opslagtests | Voorbeeld van algemene opslagtestactiviteiten |
| Toepassingstests | Vergelijk OLTP-responstijden Vergelijk batchruntijden Vergelijk aanhoudende streamingtarieven |
| Toepassingssimulatie | Test piekopslag-IOPS voor databases Test de maximale opslagdoorvoer voor datastreamingomgevingen. Test de opslaglatentie voor berichtenverkeer of andere single-threaded applicaties. |
| Benchmarking | Testen op gegevenscorruptie |
Belangrijke meetwaarden bij opslagtesten
Opslagresultaten worden weergegeven aan de hand van een kleine reeks getallen. Het lezen van slechts รฉรฉn van deze getallen leidt het snelst tot een verkeerde conclusie, omdat ze elkaar beรฏnvloeden.
| metrisch | Wat het meet | Waar het er het meest toe doet |
| IOPS | Aantal lees- en schrijfbewerkingen per seconde, ongeacht de grootte | Transactionele databases en kleine willekeurige schrijfbewerkingen |
| Wachttijd | De tijd tussen het begin en het einde van een enkele I/O-bewerking. | Berichtenverkeer en applicatiepaden met รฉรฉn thread |
| Doorvoer | De hoeveelheid data die per seconde wordt verplaatst, meestal in MB/s. | Batchverwerking, back-ups en streamingworkloads |
| Wachtrijdiepte | Aantal openstaande aanvragen die tegelijkertijd zijn ingediend | Elke run die daadwerkelijke gelijktijdigheid moet weerspiegelen |
De diepte van de wachtrij verdient bijzondere aandacht. Het รฉรฉn voor รฉรฉn versturen van een verzoek levert weliswaar een accurate latentie per verzoek op, maar een kunstmatig lage IOPS- en doorvoerwaarde. Dit verklaart waarom een โโapparaat traag kan lijken tijdens een test en snel in de productieomgeving, of andersom.
Hoe voer je opslagtests uit?
De betrouwbaarheid van een opslagtest hangt af van de omstandigheden waaronder deze is uitgevoerd. De onderstaande procedure zorgt ervoor dat de resultaten reproduceerbaar zijn.
- Stap 1) Definieer het doel. Bepaal of de test bedoeld is om de gereedheid van de database aan te tonen, de maximale doorvoersnelheid te bepalen of twee apparaten met elkaar te vergelijken. Elk doel vereist een andere werklast, en het combineren ervan levert resultaten op waar niemand iets mee kan.
- Stap 2) Bepaal een realistische omvang van de dataset. Een werkset die klein genoeg is om in de cache te passen, meet de cachegrootte, niet de opslagruimte. Stem de werkset af op het productiedatavolume, of overschrijd de cachegrootte in ieder geval ruimschoots.
- Stap 3) Kies de lees-/schrijfmix en het patroon. Willekeurige en sequentiรซle toegang gedragen zich heel verschillend op hetzelfde apparaat, net als 70/30 lees-schrijf-mixen en schrijf-alleen-bursts. Neem de mix uit de productiemonitoring in plaats van uit de standaardinstellingen.
- Stap 4) Stel de wachtrijdiepte en het aantal threads in. Deze parameters bepalen hoeveel gelijktijdige verwerking het apparaat bereikt, dus noteer ze bij elk resultaat. Een cijfer dat zonder deze parameters wordt vermeld, kan niet worden gereproduceerd.
- Stap 5) Cache wissen en opwarmen. Wis de server- en apparaatcaches tussen de runs en negeer vervolgens het eerste interval, zodat de stabiele waarden worden vergeleken in plaats van de waarden bij de eerste aanraking.
- Stap 6) Lang genoeg hardlopen. Korte schrijfcycli maskeren de schrijfproblemen die optreden zodra de schrijfbuffer van een SSD vol is. Langdurige schrijfcycli brengen deze problemen aan het licht.
- Stap 7) Monitor de hele stack. Registreer het processorgebruik, het geheugen en het netwerk naast de opslagcapaciteit, zodat een knelpunt elders niet ten onrechte wordt geรฏnterpreteerd als een opslaglimiet.
- Stap 8) Herhaal en vergelijk. Voer dezelfde configuratie meerdere keren uit en bewaar de logbestanden; prestatieverschillen tussen builds zijn alleen zichtbaar ten opzichte van een opgeslagen basislijn.
Omdat dezelfde discipline van toepassing is op elke belastingsgestuurde meting, worden deze metingen doorgaans samen met andere metingen gepland. prestatie testen en gepland voordat de releasekandidaat wordt bevroren.
Opslagtesttools
Gereedschap valt in twee categorieรซn uiteen, en de meeste teams hebben beide nodig.
- Synthetische I/O-generatoren. Hulpprogramma's zoals FIOIometer en sysbench geven een nauwkeurig omschreven workload af: de blokgrootte, de verhouding tussen lezen en schrijven, de wachtrijdiepte en de duur worden allemaal gespecificeerd, zodat een run exact op een ander apparaat kan worden herhaald.
- Laadtools op applicatieniveau. Bestuurders zoals JMeter Test de applicatie zelf, zodat de opslag hetzelfde toegangspatroon ziet als echte gebruikers creรซren, inclusief de queryplannen en het indexgedrag dat een synthetische tool niet kan reproduceren.
OperaDe tellers van het opslagsysteem maken het plaatje compleet. Ongeacht welk hulpmiddel de belasting genereert, de opslagcijfers moeten worden afgelezen naast de tellers van de processor, het geheugen en het netwerk โ verschillende technieken voor het testen van de opslag, waaronder benchmark testen en volumetesten, afhankelijk zijn van die volledige stackweergave om een โโresultaat correct te interpreteren.
Fouten tijdens het uitvoeren van opslagtests
Meest ongeldige opslagresultaten trace terug naar een klein aantal vermijdbare fouten.
- De prestaties van de verkeerde server worden gemonitord, waardoor de cijfers betrekking hebben op een machine die niet wordt getest.
- Het vergelijken van opslagapparaten zonder eerst de servercache te wissen, waarbij het geheugen in plaats van de schijf wordt gemeten.
- Het vergeten om het processorgebruik tijdens het testen te monitoren, waardoor een processorgerelateerd knelpunt verborgen blijft achter een symptoom dat lijkt op een opslagprobleem.
- Het testen van de opslagprestaties met behulp van bestandskopieeropdrachten, die single-threaded, cache-ondersteund en niet herhaalbaar zijn.

