论文部分内容阅读
互联网的高速发展使得现有的互联网体系架构已经不能满足人们日益增长的多样化需求,为此相关学者将虚拟化技术应用到网络体系架构中,通过网络虚拟化支持多网络体制并存来解决现有单一网络体制所带来的问题。虚拟路由器作为网络虚拟化技术的关键支撑得到了广泛的关注和研究,其中,通用多核平台中部署虚拟路由器借助其高度可扩展、可移植、可编程以及可实现高性能等特性成为了学术界的焦点。然而,对于通用多核平台下部署多个虚拟路由器的流量隔离问题研究较少,通常利用虚拟机等系统虚拟化方式进行流量的隔离,但虚拟机等技术给系统带来额外的性能开销。针对通用多核平台中多个虚拟路由器间的流量隔离问题,本文提出了一种高效的面向多核平台的流量隔离调度框架。该框架主要由报文收发模块和流量隔离调度模块组成,其中报文收发模块负责完成将报文从网卡设备以高效的方式直接获取到用户态共享内存,流量隔离调度模块则使用多个调度引擎协同工作完成多个虚拟路由器之间的流量隔离调度需求。该框架使用纯软件的方式实现了将流量隔离调度,不但避免了硬件实现流量隔离的难移植性,并且消除了使用系统级虚拟化所带来的额外资源开销。本框架设计和实现过程中的关键支撑技术有三点:首先,本文在报文收发模块提出一种用户态高速IO处理机制,针对用户态报文收发速度慢等问题,使用设备轮询、零拷贝、数据预取等技术进行优化加速。此外,报文收发模块为流量隔离调度模块提供软件层的网卡多队列支持,有效提高其可扩展性。通过实验表明,本文中的IO处理机制应用于用户态Click IO处理中,性能较原生Click用户态IO提高121倍。其次,针对流量的实时动态变化可能导致平台资源利用率低的问题,本文提出一种基于流量感知的调度引擎动态调整算法,通过测量缓冲队列长度及变化来确定调度引擎的调整策略,确保平台在保证不丢包、低时延的前提下具有最大的资源利用率。实验结果表明,本算法可以保持系统稳定性的同时有效提高系统整体的资源利用率。最后,针对多核竞争同一种令牌产生额外的互斥锁进而导致性能损失问题,本文提出一种自适应令牌预分配算法,使用预分配令牌与共享令牌相结合的方式,通过预分配令牌增加系统并行能力,通过共享令牌控制流量隔离的精度。通过实验表明,本算法可以保持流量隔离精度的同时有效提高系统的并行处理能力。