- 25/50/100g高速网络损伤的技术瓶颈在哪里?
对于低速率的100m/1ge网络损伤仿真,基本使用x86的架构跑个开源的软件,基本也能够在网卡nic上构建一个简易的损伤环境,简单实现丢包/延迟/错误注入都没有问题,性能能做到多强,基本要看nic后端pc配载cpu性能,这块主要吃cpu资源。
如果优化做得好,调度合理,配合较强性能的x86主机,基本在10ge速率也能够实现个七七八八。懒得动手的,对损伤粒度,损伤类型有较高要求的测试,也有很多现成商用方案选择。
-为什么在高速链下的网络损伤,x86的方式不香了?
先阐述下,为什么小编这里将25/50/100g定义为高速链,而没有将40g也纳入进来,私认为40g为4 lane *10ge,看成10ge来处理咯。
而其他为单lane 25gbe,28gbps/lane serdes,这才是真正意义上的高速链路。(当然现在pam4 56gbps,pam4 112gbps都出来了,28gbps可能也要成为传统速率了,^-^)
serdes的高速通量数据并发,要处理如此庞大的数据流,我们会需要更多cpu资源来介入,我们把所有的cpu资源都抢走了,系统本身就没法跑了。这部分我觉得可以去参考“智能网卡smartnic”相关的文章,xilinx唐杰老师针对这部分有过很明细的阐述。解释得很清楚,这里就不赘述了(小编这部分忽悠不来,哈哈哈哈哈哈)。简单来说,就是1g/10g时间,比如1个gbe的流量我们用1个cpu核心进行任务绑定,那么10gbe占用了10个,那么强如28核心的x86系统依旧有18个cpu核心处理其他事务,而到了25gbe,我们就只剩下3个核心来跑系统了,...这就很尴尬了
-异构计算加速的实现方式
因为在25/50/100gbe速率下,我们没法分配那么多cpu资源以满足nic的计算能力,所以我们需要引入异构计算加速。比如在nic上面价格arm处理器来进行任务分担,加个soc进行任务协处理,加个fpga来进行算力弥补,具体可以参考下smartnic的相关介绍,解释得比较清楚。
异构计算加速方案,最快速容易搭建的就是nic+fpga的方案了,开发周期短,灵活性高,可重构,价格不便宜但可以接受。毋庸置疑,我们目前拿到的chimera-100g多速率网络损伤仿真模拟测试仪将会是个内置fpga的方案。