基准测试快照
在 Apple M4 Pro 上使用 Go 1.26 手动测得的快照。
吞吐量
~4.3 Gbit/s
最佳 full-cycle 路径
延迟
~2.6 μs
最低 full-cycle 路径
Fast-path lookup
~4-15 ns
到 10k peers 仍保持平稳
Allocs/op
0
Hot path
完整 dataplane 周期
加密、lookup、校验、解密、handoff。这是 dataplane 核心的上限,不是端到端 VPN 吞吐量。
| 路径 | 延迟 | 吞吐量 | Allocs/op |
|---|---|---|---|
| UDP客户端 -> 服务器 | ~2.7 μs | ~4.3 Gbit/s | 0 |
| UDP服务器 -> 客户端 | ~2.6 μs | ~4.3 Gbit/s | 0 |
| TCP客户端 -> 服务器 | ~2.6 μs | ~4.3 Gbit/s | 0 |
| TCP服务器 -> 客户端 | ~2.6 μs | ~4.3 Gbit/s | 0 |
多 peer UDP 扩展
工作分摊到多个 peer 时的聚合吞吐量,而不是单条串行发送通道。
UDP 客户端 -> 服务器
聚合吞吐量1 peers~3.4 Gbit/s
64 peers~34.6 Gbit/s
1024 peers~34.2 Gbit/s
UDP 服务器 -> 客户端
聚合吞吐量1 peers~3.4 Gbit/s
64 peers~32.5 Gbit/s
1024 peers~31.9 Gbit/s
Lookup 与串行化
Internal-IP、allowed-host 和 route-ID lookup 保持平稳。misses 和每个 peer 的串行化才是真正的压力点。
| Lookup | 1 peers | 100 peers | 1000 peers | 10000 peers |
|---|---|---|---|---|
| 精确 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 path | ~35.4 ns | ~699 ns | ~9.0 μs | ~89.5 μs |
Egress 通道
~4.7 ns -> ~80 ns
从无争用发送到有争用发送
Miss path
线性
1 peer 时约 35 ns -> 10k peers 时约 89.5 μs