论文部分内容阅读
基于通用多核的高性能网络包处理系统一直被广泛研究。本文基于通用多核平台设计实现了一个从网络输入输出系统到流水并行包处理应用全程零拷贝的高性能网络包处理平台。该平台设计包含了一个基于用户态驱动的零拷贝高性能网络输入输出系统和一个满足流水并行化零拷贝需求的高性能包内存管理系统。该平台实现单核高达14.2Mpps的包分发速度,且分发速度不随包长变化而变化。
该高性能输入输出系统采用了用户态驱动框架模型,结合了数据包零拷贝和静态包内存分配等多种优化策略,最后完成了平均每个数据包约50处理器周期开销的I/O性能。它有效利用了高速缓存性能优化方法,极大的提高了该系统对不同包长小包的适应性,使得不同包长的输入输出系统均保持了稳定性。
基于流水并行的包处理应用使得同一数据包处理映射到不同的处理核,因此带来了多核多线程同步包内存管理的压力。文中采用了一对精心设计的高速缓存性能优化的无锁先进先出队列应对这种同步开销,它不仅实现了数据包流水处理的高性能核间通信机制,也有效解决了多核流水并行导致的包内存管理压力。该算法最高可以实现流水包分发能力达单条流水124Mpps,七条流水67Mpps的性能。
最后,该平台以小于单核10%处理器利用率开销实现均长726B的数据包万兆线速分发性能,而基于包拷贝的流水系统花费大于80%处理器利用率才能实现同样的包分发吞吐量。