pathmeasure

command
v0.4.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 27, 2026 License: MIT Imports: 26 Imported by: 0

Documentation

Overview

Command pathmeasure asks what a stack achieves on a path, which is the question pathprobe deliberately refuses to answer.

pathprobe sends open-loop and counts what arrives, so it describes the path and nothing else. That is the right instrument for finding an erasure floor or a capacity knee, and the wrong one for the question this project's datacenter work actually turns on: given a path that erases a seventh of what crosses it, what does an ordinary TCP connection do, and how much of the gap is the path's fault rather than the transport's?

The two instruments together separate the two. Where pathprobe delivers 256 Mbit/s at 300 offered and TCP delivers a fraction of a megabit over the same minutes, the difference is not the path. It is a congestion controller reading rate-independent erasure as congestion and backing off from a link that was never congested.

Modes:

serve      sink TCP bytes, push them, or count a UDP blast
tcp        send for a duration and sample the kernel's account of why
fct        flow completion time for request-sized payloads, cold and warm
burst      repeated bursts on one connection, with the window at each step
udp        open-loop UDP in the upload direction
h2serve    an HTTP/2 sink whose flow-control windows are settable
h2proxy    terminate HTTP/2 locally with generous windows and stream onward
h2         upload over HTTP/2, to measure what those windows cost
load       many concurrent request flows, reporting the tail
frames     many concurrent frame streams, reporting per-message latency
ab         order-alternated A/B of two arms, pooled
workload   order-alternated A/B of a real HTTP request against both arms
stream     order-alternated A/B of a token stream, reporting the gaps
streamserve emit tokens at a fixed cadence, so the generator is not a variable
rtt        round-trip distribution

Every mode can be pointed through a SOCKS5 proxy, so a tunnel and the path beneath it are measured by the same instrument rather than by two.

The tcp mode is the latency-attribution instrument. Goodput alone cannot distinguish a small congestion window from a small receive window from an application with nothing to send, and those need different fixes; TCP_INFO names which one was binding in each interval.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL