Benchmark-Snapshot
Manueller Snapshot, gemessen auf Apple M4 Pro mit Go 1.26.
Durchsatz
~4.3 Gbit/s
Bester Full-Cycle-Pfad
Latenz
~2.6 μs
Niedrigster Full-Cycle-Pfad
Fast-Path-Lookup
~4-15 ns
Flach bis 10k Peers
Allocs/op
0
Hot Path
Vollständiger Dataplane-Zyklus
Verschlüsseln, Lookup, Validierung, Entschlüsselung, Handoff. Obergrenze für den Dataplane-Kern, nicht für den End-to-End-VPN-Durchsatz.
| Pfad | Latenz | Durchsatz | Allocs/op |
|---|---|---|---|
| UDPClient -> Server | ~2.7 μs | ~4.3 Gbit/s | 0 |
| UDPServer -> Client | ~2.6 μs | ~4.3 Gbit/s | 0 |
| TCPClient -> Server | ~2.6 μs | ~4.3 Gbit/s | 0 |
| TCPServer -> Client | ~2.6 μs | ~4.3 Gbit/s | 0 |
UDP-Skalierung über mehrere Peers
Aggregierter Durchsatz bei Verteilung der Arbeit über viele Peers, nicht über eine einzelne serialisierte Sendespur.
UDP Client -> Server
Aggregierter Durchsatz1 Peers~3.4 Gbit/s
64 Peers~34.6 Gbit/s
1024 Peers~34.2 Gbit/s
UDP Server -> Client
Aggregierter Durchsatz1 Peers~3.4 Gbit/s
64 Peers~32.5 Gbit/s
1024 Peers~31.9 Gbit/s
Lookup und Serialisierung
Internal-IP-, Allowed-Host- und Route-ID-Lookups bleiben flach. Misses und Serialisierung pro Peer sind die eigentlichen Druckpunkte.
| Lookup | 1 Peers | 100 Peers | 1000 Peers | 10000 Peers |
|---|---|---|---|---|
| Exakter Internal-Lookup | ~8.7 ns | ~9.0 ns | ~9.3 ns | ~9.3 ns |
| Allowed-Host-Lookup | ~13.5 ns | ~14.9 ns | ~13.4 ns | ~14.1 ns |
| Route-ID-Lookup | ~3.9 ns | ~6.4 ns | ~6.0 ns | ~6.6 ns |
| Miss-Pfad | ~35.4 ns | ~699 ns | ~9.0 μs | ~89.5 μs |
Egress-Spur
~4.7 ns -> ~80 ns
Von uncontended zu contended Sends
Miss-Pfad
Linear
~35 ns bei 1 Peer -> ~89.5 μs bei 10k Peers