APP下载

多节点条件下中间件性能验证方案

2017-03-20金亚东毕艳梅褚雪芹

关键词:宿主机正确性包率

金亚东+毕艳梅+褚雪芹

摘 要:某DCS平台的设计实现中需采用中间件技术,但是伴随系统节点数的增加,中间件数量亦同时增加。为了验证在多个节点条件下中间件性能是否能够满足设计要求,本文给出一种验证方案。

关键词:中间件;性能

中图分类号: TP311 文獻标识码: A 文章编号: 1673-1069(2017)05-193-2

1 概述

某DCS平台采用中间件技术实现资源共享,实际设计过程中发现中间件采用UDP广播的方式进行数据传输,可支持的节点数量未知。为了获知中间件在多节点条件下的产品性能以及中间件可支持的节点数量,现提出虚拟机模拟多节点的方案,来验证中间件在多节点(多于50个)下的数据传输性能。

2 方案可行性分析

中间件通讯在数据包长度一定的情况下,造成丢包的主要原因是数据包收发频率。中间件采用UDP广播协议,服务端发送一次数据包,所有设定网段内的节点都能够接收到该数据包。如果没有发生丢包现象,节点数量增加,不会增加数据流量。但是如果服务端或者客户端出现一次丢包,接收数据不全的节点便会向服务端发送三次ACK包,请求重发丢失的数据包。随着节点数量的增加,请求重发的节点数量亦有可能增加,从而造成请求重发数据包的频率增加,进而影响中间件的通信性能。如果采用虚拟机模拟多节点,那么虚拟机中的中间件接收数据包或者请求重发数据包的机制应该独立于宿主机中的中间件,能够在发生丢包情况后请求服务端重发。

桥接模式原理图如图1所示。

桥接是指在物理网卡上安装一个桥接协议,使网卡处于混杂模式,能够将物理网卡的数据包和虚拟机网卡数据包都接收或者发送。物理网卡收到虚拟机的数据包后,通过虚拟交换机将数据转发至虚拟网卡内部。宿主机和虚拟机各占有一个IP地址,宿主机使用自身的物理网卡,虚拟机使用其虚拟网卡,虚拟机相当于在宿主机所在局域网内的一个单独的主机,虚拟机和宿主机接收数据或者请求重发的行为是互不干扰,相互独立的。与两台宿主机各自安装一个中间件的配置相比,图1所示配置需要宿主机物理网卡多做的任务是虚拟机的数据包转发至虚拟交换机。即使宿主机的中间件没有启动,虚拟机中的中间件也可以正常接收数据。在宿主机物理网卡的吞吐量范围内,宿主机内所装载的虚拟机便可以模拟多个节点。

为了验证方案的可行性,在节点-74上装入6台虚拟机,其系统架构图如图2所示。实体节点-74和6台虚拟机之间采用桥接的方式进行连接,虚拟机可以和节点-74以及外界的服务器和主机进行正常中间件通信。在虚拟机上进行数据抓包,通过分析打印的数据流向,可知数据的发送端是服务器CS1-1和PS-1,而不是宿主机,说明了数据流不是由宿主机分发或者复制到虚拟机上的,虚拟机在局域网内相当于一个独立的主机,可以不依赖于宿主机接收来自于服务端的数据。

经过中间件的实时通信测试,无论宿主机内的中间件是否启动,虚拟机内装的各节点都可以正常接收服务器所发送的数据。这7个节点上的中间件可以较好地独立运行,24小时运行时间内没有出现要求重发的请求记录,丢包率为0。测试结果表明,该方案具有可行性,可以进一步扩大实体节点数量,进行较多节点的中间件性能测试。

3 系统配置

该方案系统架构图如图3所示,一层网络和二层网络都采用环网形式,虚拟机软件采用开源免费软件VirtualBox。各台虚拟机所装的系统和软件和实体节点完全相同,各台虚拟机相互独立,能够以最接近真实的方式模拟多个节点。每台实体机内装有6台虚拟机,8台实体机总共相当于56个节点,可以满足大节点配置需求。

4 判定标准

中间件测试的性能指标包括网络丢包率和数据正确性。当这两项的测试结果均在可接受范围内时,中间件的性能才会被判定为可靠。①网络丢包率。网络丢包率是计算测试中所丢失数据包数量占所发送数据包的比率。通常,千兆网卡在流量大于200Mbps时,丢包率小于万分之五;对于百兆网卡流量大于60Mbps时,丢包率应小于万分之一[1]。②数据正确性。数据正确性的验证主要是验证模拟量和开关量的信息是否错位或丢失。

4.1 网络丢包率统计方法

通过中间件打印的日志记录来统计网络丢包率。每个节点上,中间件将接收到的global写入内存后,打印一条日志。

利用丢包率计算工具packloss_cal,对该日志文件进行数据处理,统计出不同的时间段内中间件收到的数据数目和服务器发送的数据数目,并计算出不同运行时间段内的丢包率。

4.2 数据正确性统计方法

本方案利用数据正确性分析工具testTool_correct,对各节点接收到的数据进行数据正确性分析,判断是否与设计预期结果一致。该数据分析工具可以在节点上以多进程方式启动,每个进程分析一组实时数据,多进程可分析多组实时数据。该进程会每隔2s在终端打印一次累计错误数据组数、累计正确数据组数和错误率。

该工具有两个日志文件:buglogXXX.cvs 会记录运行期间出现数据错误的时间和数据组;datalogXXX.cvs每隔2分钟记录一次在这2分钟内接收的模拟量组数和开关量组数。

5 验证步骤

多节点中间件性能测试方案的验证步骤如下:①在实体机器上各装入6台虚拟机,并配置相应的软件和数据库。②选取2台实体机(总共14个节点),在实体机上开启test-Tool correct进程,并同时运行48小时。设开始时刻为t0,从运行日志结果中提取出在时刻t0、t0+2h、t0+4h……t0+48h时的网络丢包率和数据错误率,计算出14个节点在各个时刻的丢包率平均值和正确性平均值。③同上一步,测试21个、28个、35个、42个、49个、56个节点下的数据传输丢包率和正确率。a如果从某个数量的节点开始出现丢包率和正确性的大幅变化,则调整节点数量,确定中间件可支持的节点数量拐点。b如果56个节点时的丢包率仍然没有变大,增加运行时间或者继续增加节点数量进行测试。④选取56个节点进行长时间(大于一个月)运行,观察并记录中间件运行性能。

6 数据分析

数据分析内容如下:①在一定的时间段内,绘制丢包率随节点个数变化的曲线,分析节点个数和丢包率的关系,预测更多节点下的中间件的丢包率。②在节点个数固定时,绘制丢包率随测试时间变化的曲线,分析时间和丢包率的关系,预测更长运行时间后中间件的丢包率。

参 考 文 献

[1] 许金普.网络丢包现象原因初探[J].网络安全技术与应用,2006(11):22-23.

猜你喜欢

宿主机正确性包率
支持向量机的船舶网络丢包率预测数学模型
一种基于喷泉码的异构网络发包算法*
一种基于系统稳定性和正确性的定位导航方法研究
一种新的VANET网络链路丢包率估计算法
虚拟网络实验室在农村职校计算机网络技术教学中的应用研究
浅谈如何提高水质检测结果准确性
TCN 协议分析装置丢包率研究
双口RAM读写正确性自动测试的有限状态机控制器设计方法
在不连接网线的情况下Windows与VM之间如何ping通
实现FPGA与PC的串行通信