论文部分内容阅读
网络流量监测是互联网发展到一定阶段的必然产物,一方面可以更好地了解互联网、监管互联网,另一方面也可以更好地服务互联网。伴随着链路带宽的不断增长、新兴业务的不断涌现,用于网络流量监测的软件系统面临着前所未有的压力。每一个流量监测系统的使用者,都希望监测结果既快又准,这便给系统性能提出了很高的要求。当监测系统的处理能力不能应对快速到达的网络流量时,便会出现协议状态丢失、关键信息遗漏、程序非正常终止等性能问题,导致流量监测系统不可用。于是人们开始寻找计算能力更为强大、成本开支易于接受的新型硬件平台,希望能够以此给软件系统提速。通用多核处理器的发展,集聚了许多渴望改善软件性能的研究者的目光,因为它不但能够提供强大的并行计算能力,而且具有价格上的优势。多核处理器通过在同一芯片上集成多个核心,同时保持或降低整体能耗,提供了真正意义上的高速并发运算引擎。从多核处理器角度而言,也希望能够找到一种计算密集型的应用,来充分发挥自身的性能优势,避免计算资源的浪费。可以说,多核处理器提供了计算能力方面的保证,让研究者看到了软件性能提升的发展方向,也让更多的人相信在这个逐渐普及的平台上,能够真正倍增软件性能。本课题来自于以上两方面技术发展的交汇与碰撞,将网络流量监测与多核处理器相结合,研究流量监测系统在多核平台上的性能优化问题。这是一个刚兴起不久的研究方向,也是一个涉及了流量监测技术、计算机体系结构、计算机操作系统等方面的学科内交叉领域。本文在此基点上,对一些典型的流量监测系统,进行了多核平台性能优化,并归纳总结了多核优化过程中的方法和特点。本文主要的研究内容如下。(1)研究了当前常用的多核平台软件并行优化技术。本文汲取了并行计算、处理器指令、多核平台性能优化等多方面知识,结合对大量文献的总结,归纳出了多核平台软件性能优化常用的八种方法。该八种方法分别从不同角度实现了软件性能多核优化,可以应用于不同类型的系统优化过程中。这八种优化方法的总结,对研究流量监测系统在多核平台上的性能优化,有很好的学习和参考价值。(2)研究了流量监测系统的通用架构,并提出一套用于流量监测系统多核平台性能优化的评价指标。本文总结了流量监测系统的通用架构,并通过该架构展示了流量监测系统的一般性功能组成。在此基础上,本文提出了一套流量监测系统的多核优化评价指标。该套指标分为核心指标和辅助指标,核心指标只有一个,即系统吞吐量。辅助指标细分为三类,分别用来评估系统开销分配、调度方式和优化效果。利用多核平台性能优化评价指标可以指导和帮助完成系统性能优化。(3)以具体系统为实例,研究了网络协议解析类系统多核优化的特点和方法。本文在给出流量监测系统通用架构和评价指标的基础上,选取了通用架构中应用较为广泛的一类——网络协议解析类系统,进行多核优化研究。在该类系统中,选用了自主研发的GTPAS (GPRS Tunnel Protocol Analysis System)作为具体实例进行优化,分析了GTPAS的基本性能,锁定了性能瓶颈,并结合通用多核处理器特点,提出多核性能优化策略。通过实验验证,在投入7个核心进行计算的情况下,优化后系统的吞吐量达到了优化前的391.73%,有效提高了系统处理能力。随后本文以此过程为依据,总结了网络协议解析类系统在多核平台上进行性能优化的独有特点。(4)以具体系统为实例,研究了网络内容监测类系统多核优化的特点和方法。本文在研究了网络协议解析类系统的多核优化过程后,选取了通用架构中又一类具有代表性的系统——网络内容监测类系统,进行多核优化研究。研究的实例系统,是自主研发的典型网络内容监测系统ITCMS (Internet Traffic Content Monitoring System)。经过对ITCMS进行基本性能评定、性能瓶颈分析等工作,提出了适合ITCMS的多核性能优化策略。实验结果表明,在投入7个核心进行计算的情况下,优化后系统的吞吐性能达到了优化前的436.10%。之后本文以此过程为依据,总结了网络内容监测类系统多核性能优化的特点,并将其与网络协议解析类系统的多核优化研究进行了对比。(5)完成了多核平台报文接收性能研究和报文重组性能优化。本文最后研究了该领域中两个较为常见的问题。对于多核平台报文接收性能的研究,主要分析了Linux下的两种报文接收方式——PF_PACKET Socket方式和Libpcap方式,在多核平台上的最大接收性能。文中分别对比了单、双接收进程的最大吞吐量和报文速率,之后又对单、双接收进程在最大接收能力下的处理器负载情况进行了分析。对于报文重组的多核平台性能优化,主要实现了对HTTP分片报文重组的吞吐量提升。研究借用开源程序Libnids中的报文重组部分作为待优化的目标,这是因为Libnids重组程序中所采用的重组机制是当前报文重组的主流,具有典型性。通过分析性能瓶颈,结合HTTP报文特点和多核平台特点,提出多核并行优化策略。最终经过实验验证,在投入2个计算核心的条件下,优化后的报文重组吞吐量达到了优化前的145.37%,满足了常见网络应用的基本需求。