Test Results
Test Environment:- CPU: Apple M1 Pro (arm64)
- Memory: 16GB
- Backends: 3 Python HTTP servers
- Duration: 30 seconds per test
- Tool: wrk (4 threads, 100 connections)
Request Throughput
| Load Balancer | Requests/sec | Throughput |
|---|---|---|
| UltraBalancer | 18,722 | 3.55 MB/s |
| NGINX | 21,899 | 4.07 MB/s |
| HAProxy | 530 | 76 KB/s |
Latency
| Load Balancer | Avg Latency |
|---|---|
| UltraBalancer | 38.93ms |
| NGINX | 34.47ms |
| HAProxy | 9.58ms |
Note on Results
The Python backends were the bottleneck - they can’t handle high concurrency. For production benchmarks, use fast backends (Go, Rust, Node.js). Despite this, UltraBalancer performed within 15% of NGINX - competitive for a young Rust project!Run Your Own Benchmarks
Why UltraBalancer Wins
Features
| Feature | UltraBalancer | NGINX | HAProxy |
|---|---|---|---|
| Round Robin | ✅ | ✅ | ✅ |
| Least Connections | ✅ | ✅ | ✅ |
| Weighted | ✅ | ✅ | ✅ |
| IP Hash | ✅ | ✅ | ✅ |
| Random | ✅ | ✅ | ✅ |
| Power of Two | ✅ | ❌ | ❌ |
| Fastest Response | ✅ | ❌ | ❌ |
| Prometheus Metrics | Built-in | Config | Config |
| Grafana Dashboard | ultrabalancer dashboard --start | Manual | Manual |
| Admin API | Built-in | Addon | Addon |
| Graceful Drain | ✅ | Config | Config |
Developer Experience
Rust Advantages
- Memory safety (no buffer overflows)
- Thread safety (no data races)
- Zero-cost abstractions
- Modern async runtime (Tokio)
Summary
| What you need | Winner |
|---|---|
| Raw throughput (mature C) | NGINX |
| Modern features + observability | UltraBalancer |
| Complex configs | NGINX/HAProxy |
| Developer experience | UltraBalancer |
| Production-grade proven | NGINX |
| Next-gen cloud-native | UltraBalancer |
- One-command monitoring setup
- 7 algorithms including power-of-two & fastest-response
- Secure Admin API for runtime management
- Zero-downtime deployments with drain/undrain
- Memory-safe Rust codebase
ultrabalancer dashboard --start