测试助手
请参阅debug.mk
通过 轻松测试部署技巧make remote-run
,以及netns.sh
通过make test
和make remote-test
在网络命名空间中进行本地和远程测试。该contrib/
目录还包含各种脚本和包装器,以简化测试。
绩效路线图
理论上,WireGuard 应该能够实现非常高的性能。要实现这一目标,还需要做一些事情:
- 支持GRO
- 锁定免费队列
- 核心自动缩放
- CPU 数据包位置
- 集成到 qdisc 系统和/或
fq_codel
和/或dql
基准测试
*** 这些基准测试已经过时、不可靠,而且执行得也不是很好。在此期间,WireGuard 和 IPsec 都变得更快了,WireGuard 在某些情况下仍然由于其多线程而超越 IPsec,而 OpenVPN 仍然非常慢。正在用更新的数据替换以下基准测试。***
测试配置
- 英特尔酷睿 i7-3820QM 和英特尔酷睿 i7-5200U
- Intel 82579LM 和 Intel I218LM 千兆以太网卡
- Linux 4.6.1
- WireGuard 配置:适用于 MAC 的 256 位 ChaCha20 和 Poly1305
- IPsec 配置 1:MAC 上使用 Poly1305 的 256 位 ChaCha20
- IPsec 配置 2:AES-256-GCM-128(带 AES-NI)
- OpenVPN 配置:256 位 AES 与 HMAC-SHA2-256 等效安全密码套件,UDP 模式
iperf3
并使用了该仪器,并对 30 分钟内的结果进行了平均。