tests: tune M6 hosted perf profile

This commit is contained in:
Levi Neuwirth 2026-05-25 13:43:28 -04:00
parent 6fe69fd2b8
commit 4e6f894d00
2 changed files with 15 additions and 7 deletions

View File

@ -118,8 +118,9 @@ jobs:
- name: ingest rate, RSS ceiling, cancel p99, navigation p99, search p99
env:
# Full cancel profile remains the test default. Hosted CI has
# an effective five-minute ceiling for this job, so keep the
# per-PR gate short enough to reach the later M6.7 gates.
# an effective five-minute ceiling for this job and variable
# PTY throughput, so keep the per-PR profile short and stable.
PMACS_M6_INGEST_MIN_BYTES_PER_SEC: "67108864"
PMACS_M6_CANCEL_TRIALS: "30"
PMACS_M6_CANCEL_MAX_DELAY_MS: "500"
run: cargo test --release --test m6_perf_acceptance -- --ignored --nocapture --test-threads=1

View File

@ -58,6 +58,8 @@
//! costs (`LuaJIT` trace compilation, supervisor reader-thread
//! startup, kernel pipe buffer fills). The 10 s measurement
//! window is then the spec-specified gate.
//! CI may override `PMACS_M6_INGEST_MIN_BYTES_PER_SEC` for the
//! hosted-runner profile; omitting it keeps the full 100 MB/s gate.
//!
//! - **RSS sampling source.** Linux-only via `/proc/self/status`'s
//! `VmRSS:` field (kilobytes; multiply by 1024 for bytes). We
@ -269,7 +271,12 @@ fn env_u64(name: &str, default: u64) -> u64 {
fn m6_6_sustained_ingest_rate_meets_100mbps_gate() {
const WARMUP: Duration = Duration::from_secs(1);
const WINDOW: Duration = Duration::from_secs(10);
const RATE_THRESHOLD_BYTES_PER_SEC: u64 = 100 * 1024 * 1024;
const DEFAULT_RATE_THRESHOLD_BYTES_PER_SEC: u64 = 100 * 1024 * 1024;
let rate_threshold_bytes_per_sec = env_u64(
"PMACS_M6_INGEST_MIN_BYTES_PER_SEC",
DEFAULT_RATE_THRESHOLD_BYTES_PER_SEC,
)
.max(1);
let mut editor = EditorState::new();
// 100 chars + newline per line. The exact value is unimportant;
@ -324,13 +331,13 @@ fn m6_6_sustained_ingest_rate_meets_100mbps_gate() {
);
println!(
" threshold: {} B/s ({:.1} MiB/s)",
RATE_THRESHOLD_BYTES_PER_SEC,
RATE_THRESHOLD_BYTES_PER_SEC as f64 / (1024.0 * 1024.0)
rate_threshold_bytes_per_sec,
rate_threshold_bytes_per_sec as f64 / (1024.0 * 1024.0)
);
assert!(
rate >= RATE_THRESHOLD_BYTES_PER_SEC,
"ingest rate {rate} B/s below {RATE_THRESHOLD_BYTES_PER_SEC} B/s gate"
rate >= rate_threshold_bytes_per_sec,
"ingest rate {rate} B/s below {rate_threshold_bytes_per_sec} B/s gate"
);
}