tcpulse is a robust TCP/UDP load generator and performance measurement tool crafted in Go. It offers two operation modes: server and client, allowing users to examine network performance characteristics. Perfect for load testing, connection performance metrics, and infrastructure validation, tcpulse ensures accurate analysis under diverse conditions.
tcpulse is a high-performance TCP and UDP load generator designed with fine-grained, flow-level control in Go. This tool facilitates effective measurement and analysis of network connection performance. Users can operate tcpulse in two distinct modes:
-s/--server): Functions as an echo server, accepting TCP/UDP connections and sending back received data.-c/--client): Generates configurable load on target servers while measuring performance metrics.tcpulse is essential for various network performance testing scenarios including:
tcpulse supports two connection patterns to mimic real-world usage:
To run tcpulse as a server:
$ tcpulse -s 127.0.0.1:9100
To generate load as a client:
$ tcpulse -c --flavor ephemeral --rate 1000 --duration 15s 127.0.0.1:9100
To test sustained connections:
$ tcpulse -c --flavor persistent --connections 1000 --duration 15s 127.0.0.1:9100
To conduct UDP load testing:
$ tcpulse -c --proto udp --rate 1000 --duration 15s 127.0.0.1:9100
The results can be output in JSON Lines format for further integration with monitoring tools:
$ tcpulse -c --jsonlines --rate 1000 --duration 10s 127.0.0.1:9100
{
"peer":"127.0.0.1:9100",
"count":9998,
"latency_max_us":2156,
"latency_min_us":145,
"latency_mean_us":234,
"latency_90p_us":289,
"latency_95p_us":321,
"latency_99p_us":456,
"rate_per_sec":999.8,
"timestamp":"2025-01-07T10:30:00Z"
}
tcpulse is a valuable tool for engineers and developers focused on enhancing network performance and reliability.
No comments yet.
Sign in to be the first to comment.