Perf gates run on the Studio perf VM #691

Closed
kayg wants to merge 1 commit from issue/perf-move into dev
Owner

The perf runners still use a deleted host, root-owned scratch paths and its HDD/SSD device names. They now run locally on 10by32-01-std as the current user. Compilation uses build-slot.sh with three Cargo jobs, then measurement takes perf-lock.sh outside the build slot. Each run keeps its own build and scratch directories on the VM disk.

PERF_HOST remains available for remote runs through netbird ssh. It copies the working tree, runs the same entry point, retrieves reports even after a failed gate and preserves the exit code. The docs describe the Studio host, sibling coordination and the new commands.

The Studio account cannot drop host page caches. Runners report retained caches by default; PERF_DROP_CACHES=1 requires write permission and fails clearly without it. Both storage roots use the VM disk unless explicitly overridden. Budgets and product test assertions are unchanged, so this is a new hardware and cache baseline.

Refs #686. Full measurements and gate output are in the issue comments; no evidence files are committed.

Validation: shell syntax, whitespace, nested-lock rejection, failure cleanup, and a transport check with a local SSH stub passed. The auth gate passed (max 21.594897ms vs 50ms). All 13 ordinary latency assertions were measured: the invite-failure median ratio failed at 3.739x vs <2.5x; the other 12 passed. Tasks failed update p95 and cold-index growth at both sizes (10k: 77.535/57.627ms and 36.059%; 100k: 133.556/62.142ms and 19.971%; limits 40ms and 10%). The full server gate completed without scenario failures and failed three 100k budgets: idle CPU 0.329996% vs 0.1%, idle RSS 112.785MB vs 100MB, and API note-open p95 54.008225ms vs 50ms (39.3% noise). These are single-run observations on the new hardware; thresholds are unchanged. The sibling was separately reserved throughout measurement and released afterward.

The perf runners still use a deleted host, root-owned scratch paths and its HDD/SSD device names. They now run locally on 10by32-01-std as the current user. Compilation uses build-slot.sh with three Cargo jobs, then measurement takes perf-lock.sh outside the build slot. Each run keeps its own build and scratch directories on the VM disk. PERF_HOST remains available for remote runs through netbird ssh. It copies the working tree, runs the same entry point, retrieves reports even after a failed gate and preserves the exit code. The docs describe the Studio host, sibling coordination and the new commands. The Studio account cannot drop host page caches. Runners report retained caches by default; PERF_DROP_CACHES=1 requires write permission and fails clearly without it. Both storage roots use the VM disk unless explicitly overridden. Budgets and product test assertions are unchanged, so this is a new hardware and cache baseline. Refs #686. Full measurements and gate output are in the issue comments; no evidence files are committed. Validation: shell syntax, whitespace, nested-lock rejection, failure cleanup, and a transport check with a local SSH stub passed. The auth gate passed (max 21.594897ms vs 50ms). All 13 ordinary latency assertions were measured: the invite-failure median ratio failed at 3.739x vs <2.5x; the other 12 passed. Tasks failed update p95 and cold-index growth at both sizes (10k: 77.535/57.627ms and 36.059%; 100k: 133.556/62.142ms and 19.971%; limits 40ms and 10%). The full server gate completed without scenario failures and failed three 100k budgets: idle CPU 0.329996% vs 0.1%, idle RSS 112.785MB vs 100MB, and API note-open p95 54.008225ms vs 50ms (39.3% noise). These are single-run observations on the new hardware; thresholds are unchanged. The sibling was separately reserved throughout measurement and released afterward.
Run perf gates locally on the Studio VM
Some checks failed
CI / web (pull_request) Failing after 46s
CI / server (pull_request) Successful in 1m5s
CI / rust (pull_request) Successful in 14m24s
31c49e8b60
Author
Owner

kayg decided on 27 Oct: keep every perf limit. Fix the misses in code (idle CPU, memory at 100k notes, invite timing, task saves); job perf-arm64 is on it.

kayg decided on 27 Oct: keep every perf limit. Fix the misses in code (idle CPU, memory at 100k notes, invite timing, task saves); job perf-arm64 is on it.
Author
Owner

Closing per #931: perf gates moved to the perf VMs in #787.

Closing per #931: perf gates moved to the perf VMs in #787.
kayg closed this pull request 2026-11-04 17:37:18 +00:00
Some checks failed
CI / web (pull_request) Failing after 46s
CI / server (pull_request) Successful in 1m5s
CI / rust (pull_request) Successful in 14m24s

Pull request closed

Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
kayg/calternal!691
No description provided.