论文部分内容阅读
包分类是路由器、防火墙,以及SDN交换机等网络基础设备中处理数据包的关键技术。包分类通过提取数据包的头部字段信息,再与规则集进行匹配,然后根据匹配规则中定义的动作进行下一步处理。其中规则匹配的速度决定了包分类算法处理速度的性能。近些年,新一代的软硬件技术使得数据包的处理速度已达到一个较高的性能。但是大部分的研究工作还是关注于提高处理速度性能,很少有考虑能耗问题。实际上在大规模的数据中心,能耗问题已经成为性能提升的一个约束。因此,高性能与低能耗之间的权衡问题非常值得研究。本文基于能够提高数据包处理性能的新一代软硬件平台,对在保证包分类处理达到高性能的情况下,如何进一步实现低功耗的问题进行深入研究,并在以下四个方面开展工作:1.基于CPU亲和性的包分类处理平台节能优化本文基于新一代的NUMA架构多核CPU服务器平台,广泛研究提升性能和降低能耗的方法,采用CPU亲和性技术和动态电压频率调节来实现高性能与低能耗的平衡。本文提出AFFCON(AFfinity-oriented Fine-grained CONtrolling)算法,在保证系统达到高性能的同时,还进一步降低了功耗。实验结果显示,AFFCON算法能够降低11%的功耗,并维持发包吞吐率性能接近线速理论值。2.基于社区发现的包分类算法当路由器的规则中存在一些相互叠加或无用冗余的规则时,会影响包分类匹配的性能。本文通过在真实的网络数据处理平台上搭建包分类系统,发现由网络工程师们配置的规则,具有一定的社会网络特性。基于社区发现算法,一些规则能够通过相似性进行聚合,并且这些规则都具有相同的处理动作。这样能够消除叠加冗余规则对性能的影响,并能提高规则匹配时间、内存占用率和规则更新效率。本文提出ComCuts(COMmunity detection CUTtings)算法,使用规则相似性算法构建中间层社区结构,并采用计数布鲁姆过滤器进行处理。实验结果表明,相比于传统的HiCuts算法,ComCuts算法能够降低8%的匹配时间,减少50%的内存占用体积,而且其灵活的中间层结构,更加适合需要频繁更新规则的未来网络。3.基于GPU的模糊控制包分类算法随着目前GPU性能的提升与通用性不断增强,GPU硬件平台开始被应用到包分类中。但是GPU高性能的代价之一是高能耗,受到变频空调节能原理的启发,本文基于GPU平台提出了FCEEO(Fuzzy Control-based Energy Efficiency Optimizing)算法。实验结果证明,当GPU处于空闲状态时,FCEEO算法能够降低10W左右的功耗;当GPU处于工作状态时,FCEEO算法不仅能避免当GPU温度过高而进入自动保护机制时导致的性能下降问题,还能够通过合理地调度线程资源,节省高达15.5%的能耗,同时维持具有高性能的吞吐率。4.基于CPU-GPU异构平台的包分类算法GPU作为加速平台,需要配合CPU同时进行使用。如果算法没有考虑CPU-GPU异构平台的特性,将不能很好地发挥出硬件的性能,还有可能使异构特性成为性能瓶颈。本文提出基于CPU-GPU异构平台的内存优化算法,根据包分类具有高密度计算的特点,采用了不同于传统内存拷贝方式的GPU零拷贝技术,同时结合已实现的CPU亲和性优化方案,不仅可共同提高CPU-GPU的吞吐率性能,还可降低系统整体功耗。