mirror of
https://github.com/rustfs/rustfs.git
synced 2026-07-26 08:18:18 +00:00
db277b17a4
* fix: harden GET object performance paths * fix: satisfy GET multipart layer guard * fix: keep v1 list markers S3 compatible * perf: tighten GET direct-memory decision * ci: isolate s3tests from scanner workload * refactor: simplify get object body lifecycle * fix: satisfy get object clippy
3.0 KiB
3.0 KiB
Issue 824 GET Pressure Validation Results
Date: 2026-07-05
Scope
This run validates the current branch houseme/get-object-performance-hardening
against the closest local historical GET metrics gate baseline.
Historical baseline:
- Path:
docs/benchmark/rustfs-target-bench/get-metrics-gate-baseline/warp/median_summary.csv - Git head:
92c50156a3cbbdfa454be1d14062098708851f51 - Parameters:
10MiB, warp, concurrency32, duration10s, rounds3 - Median throughput:
5734882344.960000B/s - Median req/s:
546.920000 - Median latency:
48.700000ms
Current run:
- Path:
target/bench/issue824-get-metrics-gate-current-20260705 - Git head recorded by script:
55ad8df1c2f574178669052093aa185fae8185ca - Branch/worktree contained staged and unstaged issue-824 changes.
- Parameters:
10MiB, warp, concurrency32, duration10s, rounds3 - RustFS binary:
target/release/rustfs - Observability export: disabled
- Scanner: disabled
- Command:
scripts/run_get_metrics_gate_smoke.sh \
--skip-build \
--rustfs-bin target/release/rustfs \
--size 10MiB \
--concurrency 32 \
--duration 10s \
--rounds 3 \
--round-cooldown-secs 1 \
--baseline-csv docs/benchmark/rustfs-target-bench/get-metrics-gate-baseline/warp/median_summary.csv \
--out-dir target/bench/issue824-get-metrics-gate-current-20260705 \
--data-root /private/tmp/issue824-get-metrics-gate-current-20260705
Raw Rounds
| round | throughput | req/s | avg latency | p90 | p99 |
|---|---|---|---|---|---|
| 1 | 6505.75 MiB/s | 650.57 | 47.9 ms | 73.0 ms | 103.9 ms |
| 2 | 5631.35 MiB/s | 563.13 | 52.1 ms | 80.1 ms | 106.3 ms |
| 3 | 5830.30 MiB/s | 583.03 | 52.9 ms | 72.2 ms | 92.7 ms |
Corrected median from raw round data:
- Median throughput:
6113512652.800000B/s (5830.30 MiB/s) - Median req/s:
583.030000 - Median latency:
52.100000ms - Median p90:
73.000000ms - Median p99:
103.900000ms
Baseline Comparison
| metric | baseline | current | delta |
|---|---|---|---|
| throughput B/s | 5734882344.960000 | 6113512652.800000 | +6.60% |
| req/s | 546.920000 | 583.030000 | +6.60% |
| avg latency ms | 48.700000 | 52.100000 | +6.98% |
Interpretation:
- No throughput regression was observed in this local release-binary smoke.
- Latency moved higher by 6.98% against the selected baseline. This is not a blocking regression by itself because host state, cooldown, and branch state differ, but it should be watched in the PR benchmark matrix.
- The run validates that the current changes do not obviously collapse the default 10MiB/C32 GET hot path.
Artifact Caveat
The script completed with exit code 0, but its generated
warp/median_summary.csv and warp/baseline_compare.csv contain N/A values.
The terminal summary and warp/round_results.csv preserved the actual round
values. The corrected medians above are computed from those raw round logs.
Follow-up: fix scripts/run_object_batch_bench_enhanced.sh CSV parsing/report
generation so the persisted median and baseline comparison match the terminal
summary.