基准测试快照
在 Apple M4 Pro 上使用 Go 1.26 手动测得的快照。
吞吐量
~4.3 Gbit/s
最佳 full-cycle 路径
延迟
~2.6 μs
最低 full-cycle 路径
Fast-path 查找
~3.9 ns - ~15.0 ns
从 1 到 10,000 保持平稳
Allocs/op
0
热点路径
完整 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~3.4 Gbit/s
对等节点 64~34.6 Gbit/s
对等节点 1,024~34.2 Gbit/s
UDP 服务器 -> 客户端
聚合吞吐量对等节点 1~3.4 Gbit/s
对等节点 64~32.5 Gbit/s
对等节点 1,024~31.9 Gbit/s
Lookup 与串行化
Internal-IP、allowed-host 和 route-ID lookup 保持平稳。misses 和每个 peer 的串行化才是真正的压力点。
| 查找 | 对等节点 | |||
|---|---|---|---|---|
| 1 | 100 | 1,000 | 10,000 | |
| 精确 internal lookup | ~8.7 ns | ~9.0 ns | ~9.3 ns | ~9.3 ns |
| allowed host 查找 | ~13.5 ns | ~15.0 ns | ~13.4 ns | ~14.1 ns |
| Route ID 查找 | ~3.9 ns | ~6.4 ns | ~6.0 ns | ~6.6 ns |
| 未命中路径 | ~35.4 ns | ~699 ns | ~9.0 μs | ~89.5 μs |
Egress 通道
~4.7 ns -> ~80.2 ns
从无争用发送到有争用发送
未命中路径
线性
1 时 ~35.4 ns -> 10,000 时 ~89.5 μs