Opslag en automatisch onderhoud: waarom de schijf niet vol raakt
Een testsuite die dagelijks duizenden tests uitvoert, schrijft de hele dag bewijsmateriaal weg: video's, traces, schermafbeeldingen en rapporten. Nexus Studio houdt dat automatisch binnen de perken. Elke map heeft een limiet per test, al het bewijsmateriaal samen heeft één budget en op de schijf blijft een minimale hoeveelheid ruimte vrij. Deze pagina legt uit wat groeit, wat als eerste wordt verwijderd, wat nooit wordt verwijderd en hoeveel schijfruimte 10.000 uitvoeringen per dag innemen.
Door het Nexus Studio-team, Verdict System LLC. 9 oktober 2026.
Wat groeit, en waarom het binnen de perken blijft
Elke uitvoering schrijft iets weg. Bij een geslaagde test worden een schermafbeelding en de bijbehorende metagegevens bewaard. Bij een mislukte test wordt een map bewaard: report.md, metadata.json, raw-data.json, screenshot.png en, bij een daadwerkelijke fout, video.webm en trace.zip. Uitvoeringen van API-tests, chaostests, Smart Monkey, belastingtests en visuele regressietests krijgen hun eigen mappen, en elke uitvoering voegt een rij toe aan de geschiedenis en tijdelijke bestanden aan de uitvoeringscache.
Een limiet per test is op zichzelf niet genoeg. Twintig mislukte uitvoeringen bewaren is weinig voor één test, maar levert bij 10.000 tests een volle schijf op. Daarom begrenst de engine de opslag op twee niveaus: een limiet per test en één budget voor al het bewijsmateriaal dat niet meegroeit met het aantal tests.
Niveau één: een limiet per test
Voor elk soort bewijsmateriaal wordt een vast aantal uitvoeringen bewaard, steeds de nieuwste. Dit zijn de standaardwaarden:
| Bewijsmateriaal | Standaard bewaard | Instelling |
|---|---|---|
| Mislukte uitvoeringen | De nieuwste 20 uitvoeringen per test en browser | NEXUS_BUGREPORT_RETAIN |
| Geslaagde uitvoeringen | De nieuwste 5 uitvoeringen per test en browser | NEXUS_PASSED_RETAIN |
| API-uitvoeringen | De nieuwste 20 geslaagde uitvoeringen per API-test. Mislukte uitvoeringen hebben geen eigen limiet: het budget begrenst ze. | NEXUS_API_EVIDENCE_KEEP |
| Chaostests | De nieuwste 20 uitvoeringen waarbij de test standhield, per test en browser. Uitvoeringen waarbij de test faalde, hebben geen eigen limiet: het budget begrenst ze. | NEXUS_CHAOS_RETAIN |
| Visuele regressies | De nieuwste 10 per test en controlepunt | NEXUS_VISUAL_REGRESSION_RETAIN |
| Smart Monkey-sessies | De nieuwste 10 | NEXUS_MONKEY_RETAIN |
| Uitvoeringscontext | De nieuwste 100 uitvoeringen | NEXUS_RUN_CONTEXT_RETAIN |
| History | De nieuwste 50 rijen per test en browser | NEXUS_HISTORY_RETAIN |
| Telemetriearchief | Maximaal 2 zipbestanden, geen ouder dan 7 dagen, 500 MB in totaal | NEXUS_CACHE_ZIPS, NEXUS_CACHE_RETENTION_DAYS, NEXUS_CACHE_MAX_MB |
Elk hiervan staat op een regel in het .env-bestand van de werkruimte. Via Instellingen kun je ze allemaal wijzigen, behalve de drie telemetrielimieten.
Niveau twee: één budget voor al het bewijsmateriaal, en een minimale hoeveelheid vrije ruimte
NEXUS_EVIDENCE_MAX_GB, standaard 20 GB, begrenst al het bewijsmateriaal samen: mislukte en geslaagde uitvoeringen, API-, chaos-, Smart Monkey-, belastings- en visuele regressietests. De limiet groeit niet mee met het aantal tests. Of het nu om 100 of 10,000 tests gaat, het bewijsmateriaal blijft eronder.
NEXUS_MIN_FREE_GB, standaard 10 GB, is de vrije ruimte die op de schijf behouden blijft. Zodra de vrije schijfruimte daaronder komt, wordt ouder bewijsmateriaal verwijderd, ook als het totaal nog onder het budget ligt.
Wanneer een van beide limieten wordt overschreden, verwijdert de engine volledige uitvoeringsmappen, in deze volgorde:
- Geslaagde uitvoeringen en visuele regressietests, de oudste eerst.
- Daarna mislukte uitvoeringen, de oudste eerst.
- Dit stopt zodra het bewijsmateriaal onder het budget blijft en de vrije schijfruimte boven de ondergrens ligt.
Als alleen de nieuwste uitvoering van elke test overblijft en het totaal nog boven het budget ligt, meldt de engine dit na de uitvoering: verhoog het budget, of archiveer wat u nodig hebt en verwijder oudere uitvoeringen. De ondergrens wordt uitsluitend via bewijsmateriaal gehandhaafd. Als andere bestanden de schijf vullen, verwijdert de engine zijn eigen bewijsmateriaal totdat alleen de nieuwste uitvoering van elke test overblijft, en blijft Studio waarschuwen voor weinig schijfruimte.
Wat nooit wordt verwijderd
- De nieuwste uitvoering per test en browser, en de nieuwste Smart Monkey-sessie en belastingstest. De zojuist voltooide uitvoering is altijd de nieuwste in zijn eigen categorie.
- Archief. De kopieën die u met Archiveren… in de Evidence Locker bewaart, staan naast de map met bewijsmateriaal, niet erin. Noch de limieten, noch het budget zijn erop van toepassing.
- Geschiedenis. Als een uitvoeringsmap wordt verwijderd, blijft de bijbehorende rij behouden. Geschiedenis hanteert een eigen bewaarlimiet, standaard 50 uitvoeringen per test en browser.
- De bewakingsketen. Het register kan alleen worden aangevuld en wordt nooit ingekort.
Het verwijderen van verzegeld bewijsmateriaal wordt vastgelegd
Verzegeling is optioneel. Een verzegelde registratie legt van elk bestand in de bijbehorende map een SHA-256-hash vast en koppelt deze aan de voorgaande registratie. Een verzegelde map die zonder melding verdwijnt, zou er dus precies uitzien als manipulatie.
Voordat de engine vanwege het budget een verzegelde map verwijdert, voegt hij hiervoor een PURGE-vermelding aan het register toe, met het schijfbudget als reden voor de verwijdering en het tijdstip. Het register bewijst nog steeds welke hash de map had, en nexus verify meldt de registratie als PURGED, niet als gemanipuleerd. Als de PURGE niet in het register kan worden vastgelegd, blijft de map behouden.
Wat automatisch wordt uitgevoerd, en wanneer
De engine voert na elke uitvoering onderhoud uit, in elke modus: een enkele test, een testsuite, een herhalingslus, een Watch-schema, Selenium, pytest en API-uitvoeringen.
- De vrije ruimte wordt na elke uitvoering gecontroleerd.
- De omvang van het bewijsmateriaal wordt gemeten, hoogstens eens per 15 minuten, of meteen wanneer de vrije schijfruimte onder de ondergrens ligt. Daarbij worden de oudste uitvoeringen verwijderd totdat aan beide limieten is voldaan.
- Tijdelijke bestanden worden opgeruimd. Resultaatbestanden per uitvoering en logbestanden van de geteste toepassing worden verwijderd zodra ze ouder zijn dan 24 uur. Van logbestanden voor configuratiefouten blijven de nieuwste 14 bestanden behouden. Mappen die door een afgebroken uitvoering in de tijdelijke map van Windows zijn achtergelaten, worden ook na 24 uur verwijderd.
- De tijdelijke uitvoermap van Playwright wordt aan het begin en het einde van elke uitvoering geleegd.
- Logbestanden worden bij 10 MB geroteerd.
- Tijdelijke telemetriebestanden worden na elke uitvoering in een zipbestand opgeslagen, binnen de drie bovenstaande limieten.
Wat u in Studio ziet
Werkruimte › Schijf toont:
- de gebruikte ruimte voor bewijsmateriaal ten opzichte van het budget;
- de vrije schijfruimte ten opzichte van de ondergrens;
- wanneer de laatste controle plaatsvond en hoeveel ruimte de laatste onderhoudsronde vrijmaakte;
- Onderhoud nu uitvoeren, waarmee dezelfde onderhoudsronde meteen wordt uitgevoerd in plaats van na de volgende uitvoering.
Wanneer de vrije ruimte onder de ondergrens daalt, toont Studio een waarschuwing voor weinig schijfruimte. Beide limieten staan in Instellingen, onder Bewijsmateriaal & Bewaarbeleid. Hetzelfde paneel vermeldt elke map waarnaar een uitvoering schrijft, met de grootte en de limiet: wat elke uitvoering bewaart.
Docker en externe hosts
De engine kan testsuites uitvoeren in Docker op deze machine of via SSH in een container op een Linux-server. Studio zelf blijft op Windows.
- Containerlogbestanden zijn beperkt tot drie bestanden van 10 MB per service, zodat een container die maandenlang draait de host niet met zijn eigen uitvoer vult.
- De zelfgehoste GitHub-runner registreert zich eenmalig. Na een herstart wordt de bestaande registratie hergebruikt in plaats van opnieuw te registreren.
- De engine op die host is dezelfde engine, met dezelfde limieten, hetzelfde budget en dezelfde ondergrens voor het bewijsmateriaal dat hij daar opslaat.
Een uitgewerkt voorbeeld: 10,000 uitvoeringen per dag
Dit is een schatting, geen meting. Uitgangspunten:
- 10,000 testuitvoeringen per dag;
- 5% mislukt, dus 500 mislukte uitvoeringen per dag;
- ongeveer 3 MB per map van een mislukte uitvoering: video, trace, schermafbeelding en gegevens.
Dat is ongeveer 1,5 GB aan bewijsmateriaal van mislukte tests per dag. Met de standaardlimiet van 20 GB blijft bewijsmateriaal van mislukte tests van ongeveer de afgelopen twee weken op schijf staan, en neemt al het bewijsmateriaal samen nooit meer dan 20 GB in. Geslaagde tests worden als eerste verwijderd, zodat de ruimte beschikbaar blijft voor mislukte tests, het bewijsmateriaal dat je waarschijnlijk het hardst nodig hebt.
Bij die 3 MB wordt ervan uitgegaan dat zowel de video als de trace wordt bewaard. De map BREACHED op de pagina met bewijsmateriaal neemt zonder de trace 531,2 kB in.
Afstemmen op grote testsuites
- Meer geschiedenis: verhoog
NEXUS_EVIDENCE_MAX_GB. Op een schijf van 1 TB biedt een budget van 200 GB tien keer zoveel ruimte als de standaardinstelling, goed voor ongeveer vier maanden aan mislukte tests bij 1.5 GB per dag. De limieten per test blijven gelden: een test bewaart maximaal 20 mislukte uitvoeringen, tenzij je ookNEXUS_BUGREPORT_RETAINverhoogt. - Minder per mislukte test: schakel de trace uit met
NEXUS_TRACE_ENABLED=false, of bewaar video voor minder uitkomsten metNEXUS_VIDEO_VERDICTS. Binnen hetzelfde budget passen dan meer dagen. - Ruimte voor andere programma's: verhoog
NEXUS_MIN_FREE_GBals de machine meer dan 10 GB vrije ruimte nodig heeft. - Tests die vaak per dag worden uitgevoerd: verhoog
NEXUS_HISTORY_RETAIN, bijvoorbeeld naar 500, zodat Geschiedenis meer dan een paar dagen beslaat. - Een mislukte test die je moet bewaren: archiveer deze vanuit de Evidence Locker voordat de bewaartermijn verstrijkt.
Vragen
Raakt mijn schijf vol als ik 10,000 tests per dag uitvoer?
Niet door het bewijsmateriaal. Bewijsmateriaal blijft binnen het budget, standaard 20 GB, ongeacht hoeveel tests je uitvoert. De engine verwijdert ouder bewijsmateriaal om 10 GB schijfruimte vrij te houden. Meer uitvoeringen per dag betekent dat het bewijsmateriaal minder ver teruggaat, niet dat het meer ruimte inneemt. Bestanden buiten het bewijsmateriaal, zoals Docker-images of je eigen werkruimten, vallen niet onder het budget.
Kan het opschonen een mislukte test verwijderen die ik nodig heb?
Dat kan, zodra de mislukte test oud genoeg is: bij overschrijding van het budget worden de oudste uitvoeringen verwijderd, geslaagde vóór mislukte. De nieuwste uitvoering van elke test en browser blijft altijd behouden. Kies Archiveren… in de Evidence Locker om een mislukte test permanent te bewaren. De kopie staat buiten de map met bewijsmateriaal en valt niet onder de limieten of het budget.
Wordt een verzegeld record na het opschonen als gemanipuleerd aangemerkt?
Nee. De PURGE-vermelding wordt eerst in het logboek opgenomen, en nexus verify meldt het record als PURGED.
Wat gebeurt er als de schijf bijna vol is?
Onder de ondergrens, standaard 10 GB, controleert de engine direct hoeveel ruimte het bewijsmateriaal inneemt, in plaats van te wachten op de controle om de 15 minuten. De engine verwijdert ouder bewijsmateriaal, ook als het budget niet is overschreden, en Studio toont een waarschuwing voor weinig schijfruimte. Als andere bestanden de ruimte innemen, maakt de engine vrij wat mogelijk is en blijft de waarschuwing staan.
Moet ik iets doen?
Nee. Het onderhoud vindt na elke uitvoering plaats. Met Onderhoud nu uitvoeren, onder Werkruimte › Schijf, start je het direct.