Linux extreme performance H1 load generator
3 days ago
- #high-performance
- #io_uring
- #load-testing
- gcannon is a high-performance HTTP/1.1 and WebSocket load generator built on Linux io_uring for maximum throughput.
- It requires Linux 6.1+, gcc, and liburing-dev 2.5+, and can be installed via git clone and make.
- Features include exact microsecond-resolution latency tracking via CLOCK_MONOTONIC, a TUI with live progress, and JSON output for scripting.
- Supports HTTP pipelining, WebSocket mode, per-template latency histograms, and run history saved to ~/.gcannon/history.bin.
- Uses a two-tier histogram (0–10ms at 1μs, 10ms–5s at 100μs) for exact percentile calculations without heap allocation.
- Architecture leverages io_uring for batch I/O without per-operation syscalls, with features like multishot recv and registered buffers.
- Worker threads operate independently with pre-allocated resources, using a state machine driven by io_uring completions.