看Linux及SQL如何构建网络性能分析测试系统

丰富的开发工具和开源软件组件是Linux环境的主要优点之一,如今,支撑通信网络的设备无论在速度、吞吐量、性能还是其支持的服务方面都变得日益强大。显然对用户来说这是福音——但对生产商来说这却是一项重大挑战。 

路由器的设计目标也许是与10000个其它设备流畅交互。那么其生产商就必须维护一个由所有服务器、网关、交换机及其他(用来重现设备可能面临的标准状态与压力状态的)装置组成的测试网络吗?

显然,这会导致成本不菲,更别说时间的耗费了,并且如果测试一个普通路由器都如此困难,生产商如何测试最大规模电信网络设备(例如10GB以太网交换机)的功能,又如何度量系统交互与需求情景对于复杂服务(例如整合语音、数据与影像的“三合一”服务)的不同影响?

这就是Spirent Communications公司与其产品Spirent TestCenter要解决的问题。它的设计目标是复杂网络性能分析系统,提供软件与硬件真实模拟任何可能的网络流量情景,以简化并加速测试。通过在同一个应用程序中产生控制与数据层流量并收集测试结果,功能与性能测试集中于一个应用程序中。这样做的效果是,用户可以准确测量几微秒量级的设备延迟时间。

独一无二的基于Linux的高度分布式结构(在一个产品中可能分布有数百个甚至数千个运行在设备边缘的独立嵌入式Linux系统)使Spirent TestCenter能够以线路速率跟上网络数据包流量。操作所处的位置(位于Spirent TestCenter的端口,设备处理大量输入、输出数据包的地方)对于系统性能而言十分关键,因为它可以调节大量位于该处的CPU并确保只有测试结果(而非原始数据)被传送到中央控制应用程序那里。

 

图为Spirent TestCenter端口处的应用程序及数据库

使用基于SQL的开源关系数据库作为测试结果的后端存储,而且端口处部署有现场可编程门阵列(FPGA),主要来自Xilinx公司,用来处理最为性能密集的任务:产生、捕获与分解数据包。对于大规模测试,用户可以将多种机箱加入到安装中,形成多达720个端口。系统可以捆绑到一起以提供更多端口。这样,一个端口可依次模拟32,000个数据流,使得系统能够“创建”由数以百万计主机与设备组成的网络,以测试交换机、路由器或其他设备。

为进行测试,有端口(通常不少于2个)将被连接到测试设备上的端口。用户通过运行在相连的PC或笔记本电脑上控制应用程序进行控制。输入命令后,FPGA开始大量生成数据包,有效地将交换机或路由器“置于”用户指定的速度与流量级别的网络中。FPGA监控设备返回的流量,测试并分解输入的数据包来度量延迟时间、抖动、丢包率以及数百种其它现象(根据测试需要),将这些数据发送给eXtremeDB内存嵌入式数据库。

几乎所有测试结果都由测试模块的应用程序计算得到,尽管少部分(例如需要利用多种来源数据计算的平均值)在控制PC机中计算。在数据收集点处完成几乎全部数据分析工作,可以充分利用分布于整个系统中的众多CPU(其中一些为多核),从而提升系统性能。

这些测试可以传输的信息种类多的惊人。一些用户仅仅关注第2或第3通讯子层(参考OSI 7层模型),或测量处于更高子层状态流量的特性。对于防火墙与其他与安全相关的设备,设备可以对数据包进行深入分析以探测出带有病毒及其它恶意程序特征的模式(一种更加CPU密集的分析)。系统支持相对简单的工业标准网络设备测试(例如:IETF RFC 2544和2889),但更适合进行关系到多种应用程序和流量的高度复杂分析。今天,人们期待网络能够同时处理IPTV、Web通信以及VoIP数据。与此同时还要应付不断变更的IPTV频道。最困难的挑战之一是运行针对这些情况(尤其是它们同时发生时)的测试。

将定制FPGA功能与软件处理相结合,我们可以在TestCenter中完成这个任务。在软件方面,设备广泛利用了Linux的多线程。测试程序隔离了各种功能(例如IPTV测试、VoIP测试以及多种数据库行为)并将它们分配给不同的线程。相比之下,许多老式测试技术只利用了一个CPU线程,我们产品中最“硬”的实时性能来自FPGA。

与FPGA硬件相比,系统的嵌入式软件并非“硬”实时,它只是非常快而已。我们不需要Linux的响应时间达到微秒量级,MontaVista Linux系统内建的Jiffy时间片管理工具对软件需求已经是绰绰有余。

当我们在几年前试图将产品转变为现在的分布式结构时,寻找一个能在端口处足够快的进行分类、存储以及检索测试数据的数据库是一个挑战。我们需要一个内存式数据库,从而避免文件I/O、缓存管理以及磁盘数据库相关的其他开销。系统性能得益于引导性的数据库应用编程接口(API),即,嵌入代码的API函数通过循环操作方式,一次只针对一条数据库记录工作,应用程序逻辑决定当前记录行是否属于目标集合。

SQL在测试系统中也占有一席之地,控制程序中包含开源的SQLite数据库,从分布式Linux系统中提取的测试结果就保存在该DBMS中。之所以选择SQLite是因为它对于这种非实时存储足够快,并且如果需要的话,可以“插入”一个不同的SQL数据库作为后端。可靠性及速度使Linux成为我们理想的选择。Linux的稳定性很好。如果有一千个端口,每个端口都有自己的Linux系统,并假设每个分布式系统的平均故障时间是1000分钟,那么整个测试平均每分钟都会出故障,这是无法接受的。因此,对如此大规模的分布式智能设备来说,稳定性是绝对的关键。

Linux环境丰富的开发工具和开源软件组件也是主要优点之一。例如:利用Scons构建工具可以将软件分布在Spirent的20或30台专用机器上,并将工作交给那些空闲的计算机。用于该产品的一种Linux工具是MontaVista公司的Application Pre-Linking,它扫描系统中的所有二进制文件来发现链接依赖关系。这样就不需要在应用程序运行时动态生成链接信息。

Spirent TestCenter依靠定制编程的FPGA来产生和分析数据包,它同样也可以使用开源的PCAP(Packet Capture,数据包捕获)API来进行数据包的捕获和存储。结果文件可以由基于PCAP的应用程序(如:WireShark)打开并查看,从而协助追踪bug(如:设备抖动的原因)。您说出一种Linux工具我们就可能在使用它,因为Linux基本上是一组构件的集合,TestCenter的设计则是基于这些构件的。系统中的处理器一般是成品的Intel x86和Cavium Network处理器。

我们产品中的另一开源组件是tcl/tk —— 开源的工具命令行语言(Tool Command Language)及GUI工具包。tcl/tk脚本在自动运行一组时分别在10%、20%、30%等线路速率情况下测量第二层性能的测试,之后自动开始其他第二层测试。

用户只需要按下“play”同样可以执行更长时间的测试,因为用户(包括制造商、认证机构以及以电信公司为代表的买方)需要从不同角度、针对多种模拟情况对网络设备进行压力测试,以确保设备能够达到他们声称的能力。

【编辑推荐】

  1. 豆瓣网开源数据库BeansDB发布 采用分布式键值存储
  2. PostgreSQL对决InnoDB 多版本并发控制大比拼
  3. PostgreSQL客户端处理事务功能详解
  4. MySQL创始人打造MariaDB 全面兼容MySQL 5.1
  5. PL/SQL开发中动态SQL的使用与过程分页

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/229696.html<

(0)
运维的头像运维
上一篇2025-04-18 21:37
下一篇 2025-04-18 21:38

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注