A high-performance benchmarking framework for evaluating HTTP server implementations under realistic workloads. The project focuses on measuring throughput, latency, scalability, resource utilization, and concurrency across different HTTP servers and frameworks.
This repository is designed for backend developers, systems engineers, and performance engineers who want to analyze and optimize HTTP server performance.
- HTTP GET, POST, PUT, DELETE, and PATCH benchmarking
- Configurable concurrent connections
- Configurable request rate
- Latency distribution analysis
- Throughput measurement (Requests/sec)
- Error rate analysis
- CPU utilization monitoring
- Memory utilization monitoring
- Multi-threaded load generation
- JSON, CSV, and HTML report generation
- Benchmark comparison between multiple server implementations
The framework measures:
- Requests per Second (RPS)
- Average Latency
- Median Latency
- P95 Latency
- P99 Latency
- Maximum Latency
- Success Rate
- Error Rate
- CPU Usage
- Memory Usage
- Network Throughput
- Connection Time
- Time to First Byte (TTFB)
- Single Client
- Multi-Client
- Constant Load
- Burst Traffic
- High Concurrency
- Long Duration Stress Test
- Large Payload Transfer
- Small Payload Transfer
- Keep-Alive Connections
- HTTP/1.1
- HTTP/2 (Planned)
Examples include:
- Go net/http
- fasthttp
- Fiber
- Gin
- Chi
- Echo
Additional implementations in C++, Rust, Java, or other languages can also be benchmarked.
Target Server: localhost:8080
Duration: 60 seconds
Concurrent Users: 500
Requests/sec: 154,238
Average Latency: 4.21 ms
P95 Latency: 8.74 ms
P99 Latency: 13.02 ms
Success Rate: 99.98%
CPU Usage: 71%
Memory Usage: 326 MB
HTTP-Server-Performance-Lab/
├── cmd/
├── internal/
│ ├── benchmark/
│ ├── metrics/
│ ├── loadgen/
│ ├── report/
│ └── utils/
├── configs/
├── examples/
├── reports/
├── docs/
├── scripts/
└── tests/
- Basic HTTP benchmarking
- Concurrent request generation
- Performance metrics collection
- Advanced latency analysis
- Resource monitoring
- CSV and JSON reports
- Interactive HTML dashboard
- HTTP/2 support
- HTTPS benchmarking
- WebSocket benchmarking
- Distributed load generation
- Multi-machine benchmarking
- Automated comparison reports
- Historical benchmark tracking
- Go
- Linux
- HTTP
- TCP/IP
- Goroutines
- Performance Profiling
- Benchmarking
- JSON
- CSV
- Performance Engineers
- Backend Engineers
- Systems Engineers
- Infrastructure Engineers
- Platform Engineers
- Site Reliability Engineers (SRE)
- Open Source Contributors
- Real-time dashboard
- Prometheus metrics
- Grafana integration
- Flamegraph support
- Docker benchmarking
- Kubernetes benchmarking
- Automated regression detection
- CI performance testing
Contributions are welcome. Feel free to open issues, submit pull requests, or suggest new benchmarking scenarios and performance metrics.
This project is licensed under the MIT License.