These numbers come from soak runs of scripts/bench.sh, one cell per row, read from the summary each run writes.

Machine

CPU(s) 12
Model Intel(R) Core(TM) i7-8750H CPU @ 2.20GHz
Cores / threads 6 cores, 2 threads per core, 1 socket
Kernel 7.1.10-200.fc44.x86_64

Parameters

Every cell below shares these parameters:

  • soak_seconds: 900
  • global_concurrency: 50, host_concurrency: 4 (every host in the synthetic estate shares one address, so host_concurrency binds nothing here)
  • ticks_per_second: 100
  • harness: just bench-matrix

Results

cell profile objects drift p50 (s) drift p99 (s) drift max (s) queue depth max checks executed check timeouts cpu % mean
tcp-10000 tcp 10000 0.003 0.025 2.500 10000 150800 0 25.0
exec-10000 exec 10000 0.003 0.005 0.100 10000 150315 0 25.0
tcp-50000-batched tcp 50000 0.003 0.113 1.000 50000 754276 0 81.0
tcp-50000-sync tcp 50000 0.005 0.371 5.000 49272 207630 0 35.5

tcp-50000-batched and tcp-50000-sync differ in whether the event log groups concurrent decisions into one append (batched) or flushes one per decision (sync); batched is the shipped default. The tcp-10000 and exec-10000 rows are the run taken after that batched/sync comparison. Two further fixes landed afterwards, a config loading change and a scheduling fix, each verified with its own narrower measurement (memory allocation, load time, CPU share) rather than a re-run of this table.

Reproducing a cell

scripts/bench.sh <profile> <objects> [soak_seconds]

profile is tcp or exec, objects is a positive even integer (half hosts, half services), and soak_seconds defaults to 900. just bench-matrix runs the baseline matrix in sequence.