ストレージと自己メンテナンス:ディスク容量が不足しない理由
1日に数千件のテストを実行するスイートは、動画、トレース、スクリーンショット、レポートなど、終日エビデンスを書き込みます。Nexus Studioは、それらを独自に制限内に維持します。すべてのフォルダーにはテストごとの上限があり、すべてのエビデンス全体で1つの予算が設定され、ディスクは空き容量の最低ラインを保持します。このページでは、何が増加するのか、何が最初に削除されるのか、何が決して削除されないのか、そして1日10,000回の実行がディスク上でどのように見えるかを説明します。
執筆:Verdict System LLC、Nexus Studioチーム。2026年10月9日。
何が増加し、なぜ制限内に保たれるのか
実行のたびに何かが書き込まれます。成功時はスクリーンショットとそのメタデータが保持されます。失敗時はフォルダーが保持されます:report.md、metadata.json、raw-data.json、screenshot.png、そして実際の失敗に対してはvideo.webmとtrace.zipです。API、カオス、Smart Monkey、負荷、ビジュアルリグレッションの各実行でもそれぞれのフォルダーが保持され、すべての実行によって履歴に1行追加され、実行キャッシュにスクラッチファイルが追加されます。
テストごとの上限だけでは十分ではありません。失敗した実行を20回分保持することは、1つのテストにとってはわずかですが、10,000件のテストにとってはディスクがいっぱいになってしまいます。そのため、エンジンはストレージを2つのレイヤーで制限しています。テストごとの上限と、テスト数に比例して増加しない全エビデンスに対する1つの予算です。
レイヤー1:テストごとの上限
エビデンスの種類ごとに、最新の実行が設定された回数分保持されます。デフォルトは以下のとおりです:
| エビデンス | デフォルトで保持される項目 | 設定 |
|---|---|---|
| 失敗 | テストおよびブラウザごとに最新の20回の実行 | NEXUS_BUGREPORT_RETAIN |
| 成功 | テストおよびブラウザごとの最新5件の実行 | NEXUS_PASSED_RETAIN |
| APIの実行 | APIテストごとの最新20件の成功した実行。失敗した実行には個別の制限はありません(予算によって制限されます)。 | NEXUS_API_EVIDENCE_KEEP |
| カオス実行 | テストおよびブラウザごとの最新20件の保持された実行。中断された実行には個別の制限はありません(予算によって制限されます)。 | NEXUS_CHAOS_RETAIN |
| ビジュアルリグレッション | テストおよびチェックポイントごとの最新10件 | NEXUS_VISUAL_REGRESSION_RETAIN |
| Smart Monkeyセッション | 最新の10件 | NEXUS_MONKEY_RETAIN |
| 実行コンテキスト | 最新の100件の実行 | NEXUS_RUN_CONTEXT_RETAIN |
| History | テストおよびブラウザごとの最新50行 | NEXUS_HISTORY_RETAIN |
| テレメトリアーカイブ | 最大2つのZIPファイル(7日以内、合計500 MB) | NEXUS_CACHE_ZIPS, NEXUS_CACHE_RETENTION_DAYS, NEXUS_CACHE_MAX_MB |
これらはすべてワークスペースの.env内の行です。設定では、3つのテレメトリ制限を除くすべてを編集できます。
レイヤー2:すべてのエビデンスに対する1つの予算、および空き容量の下限
デフォルトで20 GBに設定されているNEXUS_EVIDENCE_MAX_GBは、失敗、成功、API、カオス、Smart Monkey、負荷、ビジュアルリグレッションのすべての実行を含む全エビデンスをまとめて制限します。テスト数に応じて増えることはありません。テストが100件でも10,000件でも、エビデンスはこの上限以下に維持されます。
デフォルトで10 GBに設定されているNEXUS_MIN_FREE_GBは、ディスクが保持する空き容量です。ディスクの空き容量がこれを下回ると、合計サイズがまだ予算内であっても、古いエビデンスから削除されます。
いずれかの制限を超えると、エンジンは次の順序で実行フォルダー全体を削除します。
- 成功した実行とビジュアルリグレッション(古いものから順に)。
- 次に失敗した実行(古いものから順に)。
- エビデンスが予算内に収まり、ディスクの空き容量が下限を上回った時点で処理は停止します。
各テストの最新の実行のみが残っている状態で合計がまだ予算を超えている場合、エンジンは実行後にその旨を通知します。予算を増やすか、必要なものをアーカイブして古い実行を解放してください。下限の調整はエビデンスに対してのみ機能します。他のファイルによってディスクがいっぱいになった場合、エンジンは各テストの最新の実行に至るまで自身のエビデンスを解放し、Studioはディスク容量が少ないという警告を出し続けます。
決して削除されないデータ
- 各テストおよびブラウザーの最新の実行、ならびに最新のSmart Monkeyセッションおよび負荷テストの実行。終了したばかりの実行は、常にそれ自体の最新の実行となります。
- アーカイブ。 Evidence LockerでArchive…を選択して保持したコピーは、エビデンスフォルダーの内部ではなく、その隣に配置されます。上限も予算もそれらには適用されません。
- 履歴。 実行フォルダーを削除しても、その実行の行は削除されません。履歴には独自のウィンドウが保持され、デフォルトではテストおよびブラウザーごとに50回分の実行が残ります。
- 保管連続性(Chain of Custody)。 レジャー(台帳)は追記専用であり、トリミングされることはありません。
封印されたエビデンスは記録の上でパージされます
封印(シーリング)はオプトインです。封印されたレコードは、フォルダー内のすべてのファイルをSHA-256でハッシュ化し、それを直前のレコードとチェーンで結びつけます。そのため、何の記録もなく封印フォルダーが消失した場合、改ざんと全く同じように見えてしまいます。
予算制限によって封印されたフォルダーが削除される前に、エンジンはそのフォルダーのPURGEエントリをレジャーに追加し、削除した主体がディスク予算であることと、その日時を明記します。レジャーはフォルダーの元のハッシュ値を引き続き証明し、nexus verifyはそのレコードを改ざんではなくPURGEDとして報告します。レジャーにPURGEを記録できない場合、フォルダーは削除されずに残ります。
自動的に実行されるものとそのタイミング
エンジンは、単一テスト、スイート、ループ、Watch スケジュール、Selenium、pytest、API 実行のいずれのモードでも、各実行後に自動的にメンテナンスを行います。
- 各実行後に空き容量が確認されます。
- エビデンスの精査は最大で15分ごと、またはディスク容量が下限を下回った場合に直ちに実行されます。この処理により、両方の制限が満たされるまで最も古い実行データが削除されます。
- 一時ファイルがクリーンアップされます。実行ごとの結果ファイルおよびテスト対象アプリケーションのログは、24時間を経過すると削除されます。設定エラーのログは最新の14ファイルが保持されます。強制終了された実行によって Windows の temp フォルダーに残されたフォルダーも、24時間後に削除されます。
- Playwright の一時出力フォルダーは、各実行の開始時と終了時に空にされます。
- ログは 10 MB でローテーションされます。
- テレメトリの一時ファイルは、上記の3つの制限の範囲内で、各実行後に zip ファイルにまとめられます。
Studio で確認できる内容
ワークスペース › ディスクには以下が表示されます:
- 予算に対して使用されたエビデンス容量。
- 下限に対する空きディスク容量。
- 前回のチェックが実行された日時、および前回の処理で解放された容量。
- 今すぐメンテナンスを実行: 次の実行後まで待たずに、同じ処理を直ちに実行します。
空き容量が下限を下回ると、Studio にディスク容量不足の警告が表示されます。両方の制限値は、設定の Evidence & Retention にあります。同じパネルには、実行時に書き込みが行われるすべてのフォルダーが、そのサイズと制限とともに一覧表示されます: 各実行で保持されるもの。
Dockerとリモートホスト
エンジンは、このマシン上の Docker 内、または SSH 経由の Linux サーバー上のコンテナ内でスイートを実行できます。Studio 自体は Windows 上で動作します。
- コンテナのログはサービスごとに10 MBのファイル3つまでに制限されているため、コンテナが数か月稼働しても自身の出力でホストがいっぱいになることはありません。
- セルフホスト型のGitHubランナーは一度だけ登録されます。再起動時は再登録するのではなく、既存の登録を再利用します。
- そのホスト上のエンジンは同じエンジンであり、そこに書き込まれるエビデンスに対する上限、予算、および下限も同じです。
計算例:1日あたり10,000回の実行
これは測定値ではなく推定値です。以下を想定します:
- 1日あたり10,000回のテスト実行。
- 5%が失敗するため、1日あたり500件の失敗。
- 失敗フォルダあたり約3 MB:動画、トレース、スクリーンショット、およびデータ。
これは1日あたり約1.5 GBの失敗エビデンスになります。デフォルトの20 GB設定の場合、概ね直近2週間分の失敗がディスクに保持され、エビデンスの合計が20 GBを超えることはありません。成功分が先に削除されるため、最も必要とされる可能性が高い失敗エビデンスにスペースが割り当てられます。
この3 MBは動画とトレースの両方を保持することを想定しています。evidence pageにあるBREACHEDフォルダは、トレースを含める前で531.2 kBです。
大規模スイート向けのチューニング
- 履歴を増やす場合:
NEXUS_EVIDENCE_MAX_GBの値を増やしてください。1 TBのディスクで200 GBの予算を設定するとデフォルトの10倍、1日あたり1.5 GBの失敗なら約4か月分を保持できます。テストごとの上限は引き続き適用されます。NEXUS_BUGREPORT_RETAINも増やさない限り、1つのテストで保持される失敗実行は最大20件です。 - 失敗あたりの容量を減らす場合:
NEXUS_TRACE_ENABLED=falseでトレースをオフにするか、NEXUS_VIDEO_VERDICTSで動画を保持する判定結果を減らします。そうすることで、同じ予算でより多くの日数を保持できるようになります。 - 他のプログラム用の空き容量を確保する場合:マシンに10 GB以上の空き容量が必要な場合は、
NEXUS_MIN_FREE_GBの値を増やしてください。 - 1日に何度も実行されるテストの場合:履歴が数日分以上をカバーできるように、
NEXUS_HISTORY_RETAINをたとえば500などに増やしてください。 - 残しておく必要がある失敗テスト: 期限切れになる前にEvidence Lockerからアーカイブしてください。
ご質問
1日に10,000件のテストを実行すると、ディスクがいっぱいになりますか?
エビデンスによっていっぱいになることはありません。エビデンスはどれだけテストを実行してもデフォルトで20 GBの予算内に収まり、エンジンはディスクの空き容量を10 GB維持するために古いエビデンスを削除します。1日の実行回数が増えると、保持されるエビデンスの期間が短くなるだけで、消費容量が増えるわけではありません。Dockerイメージや独自のワークスペースなど、エビデンス以外のファイルは予算の対象外です。
クリーンアップによって、必要な失敗テストが削除されることはありますか?
失敗が十分に古くなると、削除される可能性があります。予算を超えると最も古い実行から削除され、失敗よりも成功が先に削除されます。ただし、各テストおよびブラウザの最新の実行は常に保持されます。失敗を永久に残すには、Evidence Lockerでアーカイブ…を選択してください。コピーはエビデンスフォルダーの外に配置され、上限や予算の影響を受けません。
クリーンアップ後、封印されたレコードは改ざんされたと判定されますか?
いいえ。まずPURGEエントリが台帳に記録され、nexus verifyはレコードをPURGEDとして報告します。
ディスクがほぼいっぱいになるとどうなりますか?
下限値(デフォルトで10 GB)を下回ると、エンジンは15分ごとの処理を待たずに直ちにエビデンスを評価し、予算内であっても古いエビデンスを削除します。また、Studioにはディスク残量低下の警告が表示されます。他のファイルが容量を占有している場合は、可能な限り容量を解放した上で警告を表示し続けます。
何か対応する必要がありますか?
いいえ。実行のたびに自動的に実行されます。ワークスペース › ディスクにある今すぐメンテナンスを実行から直ちに実行することもできます。