Builds drive the mac-local runner to load 500+ #5

Closed
opened 2026-08-31 15:10:15 +00:00 by paulhitt · 1 comment
paulhitt commented 2026-08-31 15:10:15 +00:00 (Migrated from gitlab.com)

Building this project drives the runner host to a load average of ~500-660, and
it reproduces on every build start:

10:33  load averages: 566.73 402.83 339.08     (during xcodebuild)
10:42  load averages:  14.21 166.36 249.20     (a few minutes after stopping)

No xcodebuild process is near the top of CPU while it happens. The heavy
processes are mds_stores, mdworker_shared and WindowServer — Spotlight
indexing DerivedData as it is written. ci-build/ reaches ~400MB per run and
the runner rebuilds it on every job.

Why it is worth fixing

This Mac is the mac-local runner and is therefore in the merge path for both
app repos. A machine at load 500 makes every job slower and made a 12-run local
loop get killed by a watchdog. It is also just unpleasant to use while CI runs.

Likely fix

Exclude the build directories from Spotlight — either in System Settings →
Siri & Spotlight → Spotlight Privacy, or by dropping a .metadata_never_index
file in each:

touch ~/Library/Android/sdk/.metadata_never_index
touch /Users/paulhitt/builds/.metadata_never_index

⚠️ Needs the machine's owner: the Settings route is interactive, and the
builds/ path belongs to the runner rather than to any repository.

Done when

  • Build directories excluded from Spotlight
  • A build no longer drives load above roughly the core count
Building this project drives the runner host to a load average of ~500-660, and it reproduces on every build start: ``` 10:33 load averages: 566.73 402.83 339.08 (during xcodebuild) 10:42 load averages: 14.21 166.36 249.20 (a few minutes after stopping) ``` No `xcodebuild` process is near the top of CPU while it happens. The heavy processes are `mds_stores`, `mdworker_shared` and `WindowServer` — Spotlight indexing DerivedData as it is written. `ci-build/` reaches ~400MB per run and the runner rebuilds it on every job. ### Why it is worth fixing This Mac is the `mac-local` runner and is therefore in the merge path for both app repos. A machine at load 500 makes every job slower and made a 12-run local loop get killed by a watchdog. It is also just unpleasant to use while CI runs. ### Likely fix Exclude the build directories from Spotlight — either in System Settings → Siri & Spotlight → Spotlight Privacy, or by dropping a `.metadata_never_index` file in each: ```bash touch ~/Library/Android/sdk/.metadata_never_index touch /Users/paulhitt/builds/.metadata_never_index ``` ⚠️ Needs the machine's owner: the Settings route is interactive, and the `builds/` path belongs to the runner rather than to any repository. ### Done when - [ ] Build directories excluded from Spotlight - [ ] A build no longer drives load above roughly the core count

Closing as obsolete in the 2026-10-16 issue cleanup. The GitLab mac-local runner this was about is gone: since 2026-10-13 CI runs on the Gitea runner pauls-imac, and this Mac is not registered as a runner. The Spotlight fix (ci-build/.metadata_never_index, cdc036ab) is kept in .gitea/workflows/ci.yml on PR #320. Not measured: load against core count on the new runner.

Closing as obsolete in the 2026-10-16 issue cleanup. The GitLab mac-local runner this was about is gone: since 2026-10-13 CI runs on the Gitea runner pauls-imac, and this Mac is not registered as a runner. The Spotlight fix (ci-build/.metadata_never_index, cdc036ab) is kept in .gitea/workflows/ci.yml on PR #320. Not measured: load against core count on the new runner.
Sign in to join this conversation.