知识卡片
Calico性能测试证明:拒绝隧道封包的纯路由方案,性能可以做到接近物理机
内容
Calico官方针对四种场景做了对比测试:物理服务器(作为性能基准)、部署了Calico的容器之间、部署了Calico的OpenStack虚拟机之间、部署了OVS配合VxLAN隧道的OpenStack虚拟机之间,分别在大(20000字节)小(500字节)两种数据包尺寸下测量吞吐量、CPU使用率和延迟。测试结果呈现出清晰的规律:部署了Calico的两个场景(容器和虚拟机)在吞吐量极限和每Gbps CPU使用率上都非常贴近物理服务器的基准表现;延迟测试(节点间交换1字节数据包)同样显示Calico容器的延迟非常接近物理服务器,只有基于网络虚拟化的场景因为额外的处理层延迟会稍大一些。总体结论是Calico的性能非常接近物理机,明显优于基于隧道的OVS方案。这个测试结果为[[Calico的核心思路:让容器网络完全落回三层路由,不需要NAT也不需要隧道封包]]提供了实证支撑——理论上”去掉封包解包这一层”应该带来性能收益,而这组测试用具体数字验证了这个理论判断确实成立,纯路由方案和隧道封装方案之间的性能差距在真实测试中是显著且一致的。这个案例提示了一条评估网络虚拟化方案的实用经验:网络虚拟化技术引入的额外软件处理层(无论是NAT转换还是隧道封包解包)几乎必然带来吞吐量下降和CPU开销上升,这个代价不是理论上的担忧,而是能够被实测数据反复验证的确定性现象——评估任何网络方案时,”这个方案有没有引入额外的封包/解包/转换层”本身就是一个值得优先审视的性能风向标,越接近让数据包按原生方式在网络里流动的方案,性能天花板往往越高。
参考来源
- 位置:《高可用架构(第1卷)》第4章《容器与云计算》"4.3 使用开源Calico构建Docker多租户网络"节,"4.3.4 性能测试"(源文件:_epub-src/OEBPS/Text/Chapter4_3_5.xhtml)
- 结论依据:原文说明测试了物理服务器、Calico容器、Calico OpenStack VM、OVS with VxLAN OpenStack VM四种场景的吞吐量、CPU使用率、延迟,并总结"部署了Calico的2个场景都非常贴近物理服务器的性能……测试结果表明,Calico的性能非常接近物理服务器,比基于隧道的OVS性能好很多",直接支撑本卡片结论。
- 原始内容:可以看到,部署了Calico的2个场景都非常贴近物理服务器的性能……这个结果显示,Calico容器非常接近物理服务器……测试结果表明,Calico的性能非常接近物理服务器,比基于隧道的OVS性能好很多。