PERF: 50k CalDAV read and sync peak CPU rises 77–100% (#573) #712

Open
opened 2026-10-02 09:59:20 +00:00 by kayg · 0 comments
Owner

Evidence

Measured on the quiet perf VM with HDD emulation. This compares three completed baseline runs at c4a61e8cf090170f35b1bed3350d9de20c83ecd5 with two completed feature runs at f943e0dab500f69835462dd3e46b91fa117b9e9f. Feature attempt B2 stopped during fixture creation at 25,000/50,000 entries. The benchmark records peak sampled CPU percent in 250 ms windows, not average CPU-seconds.

Scenario Baseline median peak CPU Feature median peak CPU Change
PROPFIND, 50k 103.89% 207.38% +99.6%
calendar-query, 50k 103.87% 183.72% +76.9%
sync after 10k changes 107.88% 198.32% +83.8%

Feature p95 latency improved in each scenario (13,953 to 2,592 ms; 6,646 to 2,265 ms; 12,928 to 2,673 ms). The peak CPU increase may reflect greater parallel work and lower response time; measure CPU-seconds per request before deciding whether to change the implementation. This issue tracks the >10% peak CPU signal and the missing average CPU measurement.

Reproduction

Run bench/caldav-scale-573.py --entries 50000 --samples 3 --changes 10000 --batch-size 1000 --clients 50 with the optimized server builds at the commits above. Use TMPDIR=/srv/hdd-emu/tmp, /root/hdd-emu.sh run-limited, and flock -w 14400 /root/perf.lock. Source JSON: /root/perf-rerun/output/caldav-A1.json through caldav-A3.json and caldav-B1.json, caldav-B3.json.

## Evidence Measured on the quiet perf VM with HDD emulation. This compares three completed baseline runs at `c4a61e8cf090170f35b1bed3350d9de20c83ecd5` with two completed feature runs at `f943e0dab500f69835462dd3e46b91fa117b9e9f`. Feature attempt B2 stopped during fixture creation at 25,000/50,000 entries. The benchmark records peak sampled CPU percent in 250 ms windows, not average CPU-seconds. | Scenario | Baseline median peak CPU | Feature median peak CPU | Change | | --- | ---: | ---: | ---: | | PROPFIND, 50k | 103.89% | 207.38% | +99.6% | | calendar-query, 50k | 103.87% | 183.72% | +76.9% | | sync after 10k changes | 107.88% | 198.32% | +83.8% | Feature p95 latency improved in each scenario (13,953 to 2,592 ms; 6,646 to 2,265 ms; 12,928 to 2,673 ms). The peak CPU increase may reflect greater parallel work and lower response time; measure CPU-seconds per request before deciding whether to change the implementation. This issue tracks the >10% peak CPU signal and the missing average CPU measurement. ## Reproduction Run `bench/caldav-scale-573.py --entries 50000 --samples 3 --changes 10000 --batch-size 1000 --clients 50` with the optimized server builds at the commits above. Use `TMPDIR=/srv/hdd-emu/tmp`, `/root/hdd-emu.sh run-limited`, and `flock -w 14400 /root/perf.lock`. Source JSON: `/root/perf-rerun/output/caldav-A1.json` through `caldav-A3.json` and `caldav-B1.json`, `caldav-B3.json`.
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#712
No description provided.