aws-samples / aws-samples/sample-autonomous-cloud-coding-agents
perf(ci): investigate Free Disk Space step — 47-67% of pre-build overhead — follow-up to #363
まだ誰も着手していません。
- 主要言語
- TypeScript
- スター
- 146
- フォーク
- 46
- 平均マージ
- 3日 10時間
- マージ済み PR(30日)
- 24
説明
Parent: #363 (build-performance umbrella). Surfaced by the measured re-review of PR #364 (@theagenticguy); needs maintainer approved before implementation (ADR-003).
Finding — the dominant, addressable pre-build cost
From authoritative per-step timings (gh api repos/.../actions/jobs/<id> .steps[].started_at/completed_at, not log arithmetic), the Free Disk Space step is 47–67% of the entire job-start → build pre-work:
| Run | job | Free Disk Space |
job start → build | share |
|---|---|---|---|---|
30412723686 |
90452344735 |
148s | 220s | 67% |
30419878840 |
90474296240 |
97s | 179s | 54% |
30418865914 |
90471207016 |
75s | 158s | 47% |
One sudo rm -rf step is roughly half the per-job overhead that the shard math (#675) treats as irreducible. It also deletes /opt/hostedtoolcache, after which Setup Node.js re-downloads Node 22.23.1 (Acquiring 22.23.1 … Adding to the cache) — only ~4–5s, so a smell rather than a cost, but the step pays ~100s to delete a tool cache it immediately needs part of back.
Scope — run the experiment the doc's own measurement protocol demands
- Not claiming the step is unnecessary — no
ENOSPCevidence was seen in sampled logs, and absence of evidence is not proof the build fits without it. - Experiment: drop the step (or narrow it to
/usr/local/lib/android+/usr/share/dotnet, keeping/opt/hostedtoolcache), then report peak disk and 4-core wall time before/after with run IDs. - If safe, this is the single highest-value CI change measured so far.
Why it leads
Cutting this drops fixed_overhead from ~120–220s toward ~60–100s — which is the one change that could make sharding (#675) worth re-costing before its ~250s trigger fires. So it sequences ahead of everything else.
Sequence (see re-ranked comment on #363)
#(this) Free Disk Space → #677 runner → #678 path-filter → #676 coverage → #684 cache-investigation → #675 shard (deferred).
Refs #363
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
調査の方向性
GitHub Actions ジョブの Free Disk Space ステップから始め、gh api repos/.../actions/jobs/<id> を使用して、引用されている実行の信頼できるステップ時間を調べます。/opt/hostedtoolcache を維持したまま、ステップを削除するか、/usr/local/lib/android と /usr/share/dotnet に限定するテストを行います。完了とは、実行 ID とともに、変更前後のディスク使用量のピークと 4 コアでの wall time を報告することです。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- github-actions, shell
- 領域
- ci-cd, performance
- issue の種類
- リファクタリング
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 活発さ
- 静か
- 明瞭さ
- おおむね明確
- 初心者へのやさしさ
- 45/100