Reminder DAV local p95 exceeds the local comparison; verify on perf VM #651

Open
opened 2026-10-01 20:50:06 +00:00 by kayg · 2 comments
Owner

The #643/#647 local Reminder profile exceeds the published 10% route-p95 budget against an earlier local lab run. This is a follow-up measurement request, not a confirmed code regression. The official baseline has no matching Reminder profile. The perf VM was unreachable. Both measurements use a shared local host and debug binaries. The before binary source commit is unknown.

Profile: bench/reminders-sync.py, 30 GETs, 30 initial sync requests, then 8 concurrent sync requests with 2,000 Tasks. Result file: docs/perf/reminders-643.local.json.

Phase Before p50/p95 ms After p50/p95 ms Before/after server CPU s Before/after RSS KiB
average_get 520.9 / 699.8 1317.9 / 1859.3 16.17 / 17.24 777604 / 358136
average_sync 471.3 / 547.9 1548.1 / 2298.7 13.72 / 15.68 777604 / 358236
worst_sync 5621.3 / 10704.5 10374.3 / 22174.2 15.77 / 15.01 895072 / 498340

Load averages: before [20.5537109375, 25.78466796875, 31.150390625]; after [29.904296875, 28.79931640625, 24.80029296875].
GET server CPU share fell from 98.5% to 44.0%; ordinary sync from 94.8% to 32.1%. Wall time may reflect host contention. Repeat on the perf VM with its lock and the shared release build. Performance is not a merge gate. Do not repeat the job round on this busy host.

The #643/#647 local Reminder profile exceeds the published 10% route-p95 budget against an earlier local lab run. This is a follow-up measurement request, not a confirmed code regression. The official baseline has no matching Reminder profile. The perf VM was unreachable. Both measurements use a shared local host and debug binaries. The before binary source commit is unknown. Profile: `bench/reminders-sync.py`, 30 GETs, 30 initial sync requests, then 8 concurrent sync requests with 2,000 Tasks. Result file: `docs/perf/reminders-643.local.json`. | Phase | Before p50/p95 ms | After p50/p95 ms | Before/after server CPU s | Before/after RSS KiB | |---|---:|---:|---:|---:| | average_get | 520.9 / 699.8 | 1317.9 / 1859.3 | 16.17 / 17.24 | 777604 / 358136 | | average_sync | 471.3 / 547.9 | 1548.1 / 2298.7 | 13.72 / 15.68 | 777604 / 358236 | | worst_sync | 5621.3 / 10704.5 | 10374.3 / 22174.2 | 15.77 / 15.01 | 895072 / 498340 | Load averages: before [20.5537109375, 25.78466796875, 31.150390625]; after [29.904296875, 28.79931640625, 24.80029296875]. GET server CPU share fell from 98.5% to 44.0%; ordinary sync from 94.8% to 32.1%. Wall time may reflect host contention. Repeat on the perf VM with its lock and the shared release build. Performance is not a merge gate. Do not repeat the job round on this busy host.
Author
Owner

Starting the #651 Reminder DAV comparison from job/perf-rerun at c4a61e8cf090170f35b1bed3350d9de20c83ecd5, against job/reminders-643 at bc66ed31d62bb020115b27cfe3f5bb2e1f38b743. I will interleave three optimized release runs per build on the locked perf VM with HDD emulation, using the 2,000-Task profile.

Starting the #651 Reminder DAV comparison from `job/perf-rerun` at `c4a61e8cf090170f35b1bed3350d9de20c83ecd5`, against `job/reminders-643` at `bc66ed31d62bb020115b27cfe3f5bb2e1f38b743`. I will interleave three optimized release runs per build on the locked perf VM with HDD emulation, using the 2,000-Task profile.
Author
Owner

Results

Three interleaved runs per optimized release build on the locked perf VM with HDD emulation. Each run measured 30 GET requests, 30 initial collection sync requests and eight concurrent sync requests against a 2,000-Task population. The table shows medians of the three run-level p50/p95 and resource results.

Phase dev c4a61e8 p50 / p95 job/reminders-643 bc66ed3 p50 / p95 dev CPU / RSS feature CPU / RSS
GET one Reminder 19.12 / 750.22 ms 18.89 / 754.14 ms 29.45% / 196,120 KiB 28.76% / 188,384 KiB
Initial collection sync 19.03 / 20.98 ms 18.72 / 20.26 ms 97.43% / 196,352 KiB 96.26% / 188,560 KiB
Eight concurrent sync requests 2,631.31 / 2,773.37 ms 2,620.77 / 2,757.07 ms 64.12% / 288,784 KiB 65.23% / 282,204 KiB

No latency, CPU or RSS change exceeded 10%. The initial GET p95 difference was +0.5%; the worst-sync p95 difference was −0.6%.

The first attempts stopped before server startup because the temporary runner eagerly evaluated an invalid fallback path despite CALTERNAL_PROFILE_REPO_ROOT being set. I fixed the temporary runner expression and then completed all six interleaved runs reported here. No product code changed.

Command

python3 /root/perf-rerun/run_aux_profile.py reminders --server <dev-or-feature-release-binary> --output /root/perf-rerun/output/reminders-<label>.json --commit <matching-SHA>, with CALTERNAL_PROFILE_REPO_ROOT=/root/perf-rerun/base and TMPDIR=/srv/hdd-emu/tmp. Each run used /root/hdd-emu.sh run-limited under flock -w 14400 /root/perf.lock; uptime and load were recorded at both ends.

## Results Three interleaved runs per optimized release build on the locked perf VM with HDD emulation. Each run measured 30 GET requests, 30 initial collection sync requests and eight concurrent sync requests against a 2,000-Task population. The table shows medians of the three run-level p50/p95 and resource results. | Phase | dev `c4a61e8` p50 / p95 | `job/reminders-643` `bc66ed3` p50 / p95 | dev CPU / RSS | feature CPU / RSS | | --- | ---: | ---: | ---: | ---: | | GET one Reminder | 19.12 / 750.22 ms | 18.89 / 754.14 ms | 29.45% / 196,120 KiB | 28.76% / 188,384 KiB | | Initial collection sync | 19.03 / 20.98 ms | 18.72 / 20.26 ms | 97.43% / 196,352 KiB | 96.26% / 188,560 KiB | | Eight concurrent sync requests | 2,631.31 / 2,773.37 ms | 2,620.77 / 2,757.07 ms | 64.12% / 288,784 KiB | 65.23% / 282,204 KiB | No latency, CPU or RSS change exceeded 10%. The initial GET p95 difference was +0.5%; the worst-sync p95 difference was −0.6%. The first attempts stopped before server startup because the temporary runner eagerly evaluated an invalid fallback path despite `CALTERNAL_PROFILE_REPO_ROOT` being set. I fixed the temporary runner expression and then completed all six interleaved runs reported here. No product code changed. ## Command `python3 /root/perf-rerun/run_aux_profile.py reminders --server <dev-or-feature-release-binary> --output /root/perf-rerun/output/reminders-<label>.json --commit <matching-SHA>`, with `CALTERNAL_PROFILE_REPO_ROOT=/root/perf-rerun/base` and `TMPDIR=/srv/hdd-emu/tmp`. Each run used `/root/hdd-emu.sh run-limited` under `flock -w 14400 /root/perf.lock`; uptime and load were recorded at both ends.
Sign in to join this conversation.
No labels
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#651
No description provided.