高效信息收发软件系统设计分析

2011-09-26 01:59:58
无线电工程 2011年9期
关键词:频度数据包内存

许 静

(中国电子科技集团公司第五十四研究所,河北石家庄050081)

0 引言

随着现代信息技术的飞速发展,各种信息的需求及使用量大幅增加,高效的数据传输能力越来越重要。为此,人们对及时、可靠、高效地汇集和分发各类数据的能力也提出了越来越高的要求。信息收发系统就是这样一个可将各种渠道获得的数据汇集到一起并将其提供给信息处理中心的核心处理系统,该系统效率的高低直接影响到后续各类处理服务器的服务质量。

下面针对现代化信息汇集分发的要求,首先从该系统整体效能入手,提出了一套高效的系统解决方案,通过各种优化策略,实现了实时、准确、高效地获取并分发数据的功能,并通过对实现系统的检测,进一步分析了影响系统性能的关键点。

1 系统需求分析

信息收发系统是整个大系统的信息汇集核心与前站,一般处于前端数据采集之后及进入各处理中心前。它负责将外部各种来源的数据汇集起来,根据数据包中描述的内容,进行分类并分派给指定的服务器进行后续处理。因此,信息收发系统是整个大系统的关键信息节点,集信息收集、预处理和信息分发于一体,其典型场景的描述如图1所示。

图1 信息收发系统典型场景

信息收发系统可获得终端信息和外部系统信息。各终端信息通过有线或无线通信方式上传至其汇集节点,然后再统一提供给信息收发系统。外部系统则可按照既定格式提供系统所需信息。

系统收到的信息按照频度、种类和处理要求等可大体分成实时高频度短数据包信息和非实时长报文数据,而信息收发系统的效率就取决于对实时高频度短数据包的处理能力。

信息收发系统的需求描述如下:

①及时获取各数据源发送的各类数据;

②初步检验数据的正确性,并根据数据包中的相关信息将其分派给指定的处理服务,对于不能根据数据内容进行分派的则根据其数据源地址将其分派给缺省的处理服务;

③对原始数据包进行存储,支持事后对原始数据进行检查和分析;

④具有持续处理海量、高频度短数据包的能力;

⑤高实时性,要能够及时、准确地获取和送达数据;

⑥系统具有良好的易操作性、易维护性。

2 系统设计

2.1 通信模式

鉴于以上对信息收发系统的要求和网络传输特点,首先需确定系统所采用的通信协议。传输控制协议(Transmission Control Protocol,TCP)与用户数据报协议(User Datagram Protocol,UDP)是工作在传输层的2个核心协议,其主要差别如表1所示。

表1 TCP和 UDP协议比较

通过表1所示的TCP和UDP协议间的差别,经过对信息安全性、可靠性及系统性能权衡后,最终在系统设计中选择了TCP协议。

2.2 系统功能与流程

2.2.1 系统功能

根据系统需求及上述分析,可以确立信息收发系统主要由以下几个部分组成:

①数据接收与解析:接收外部数据源发送来的各种数据,并通过解析数据初步验证其的合法性;

②数据存储:将接收到的数据按照一定格式要求进行存储;

③数据分派:按照解析后的数据内容及预先设定的分类规则进行分类分派,对于不能分类的报文则分派给缺省的服务;

④传输用户管理:管理与本系统建立通信连接的用户及其相关信息;

⑤分发规则管理:对数据分派中依据的分类规则进行维护和管理;

⑥日志管理:将系统中出现的错误和特别情况进行记录和查询;

⑦信息查询:可以通过人机交互的方式,查询接收数据的索引信息。

2.2.2 系统流程

信息收发系统是一个信息流动的中心,不仅表现在其内部大量信息的流动,还与信息源、信息收发系统以及各类后续服务之间有着既定的关系,其主要流程关系如图2所示。

图2 信息收发及其相关系统流程

图2中斜虚线表示信息发送端、信息收发系统、服务接收端3者之间的信息流动,步骤①~步骤④完成网络连接的建立、创建各种线程等初始化工作,步骤⑤和步骤⑥完成信息在3部分间的传输,步骤⑦和步骤⑧结束整个数据的发送接收过程。

此外,在系统的设计中采用了面向对象的设计方法,分别建立了多传输连接管理、分发规则、接收数据和日志等多个对象,以便完成系统的主体功能。针对本系统而言,在完成系统功能的基础上,研究重点是如何提高系统效率。

3 提高效能的各种策略

所谓“高效”的信息收发是对系统整体性能方面提出的要求。系统的性能从整体上讲是系统提供给用户的众多性能指标的混合体,既包括硬件性能,也包括网络能力和软件性能。从软件开发的角度来看,系统性能方面需要着重考虑的是系统架构、数据库设计、软件设计和代码实现等几个方面。下面主要从软件角度来进行分析与研究,鉴于系统的硬件依赖性,也对硬件选型和网络环境也进行了初步探讨。

3.1 网络环境与硬件设备

网络是信息收发的基础,其主要的性能指标主要有3个:带宽、时延和带宽时延积。在进行网络传输保障与优化时,需要考虑以下几个方面:

①考察网络中延迟是否影响到应用;

②网络持续的可用时间,即网络的可用性;③带宽是否影响了网络性能;

④网络负载是否过重,以至由于拥塞而导致数据包的丢失;

⑤网络的基线标准水平如何。

若网络环境不是造成系统性能的瓶颈,则服务器的性能就成为提高硬件性能的关键。作为通信服务器,其性能指标以系统响应速度和作业吞吐量为重点,再尽可能选择那些扩展性强、易管理、高可靠性、能适应未来业务发展而费用能够承受的服务器。

3.2 软件系统结构

从信息收发系统的功能来看,该系统主要包括:数据接收与解析、数据存储、数据分派3大主体功能。从这3项主体功能初步分析可以得出,数据存储是耗时最多且频繁占用系统CPU和内存的处理。为了减少数据存储与数据收发间的互相影响,采用了对数据接收、存储和分发分别建立独立的线程的设计思路。

在信息接收、发送线程中,其处理的是高频度、小数据量的数据包,且分发的服务端的个数有限。因此,在高性能服务器的支持下,采用单一线程能够完成收发任务,就没有必要采用多线程的网络模型,这样使得数据接收、存储和发送的实现更简洁,结构更清晰。

存储的传输数据需要为其他应用服务且有支持事后查阅的能力。由此,系统中采用数据库来存储接收的数据。其存储的物理位置可以在本地,也可以存储于独立的数据库服务器。这就需要根据实际应用的数据访问量,在经费允许的条件下灵活选择。

此外,还可以通过对数据库的优化提高数据存储及读取的效率,这里不再赘述。

3.3 网络I/O模型

信息收发系统开发的是一个服务器应用,要在一个给定的时间同时控制几个套接字,且性能要求高。

Windows套接字I/O模型中,重叠I/O模型比起select、WSAAsyncSelect、WSAEventSelect以及阻塞等模型来,更能使应用程序能达到最佳的系统性能。重叠 I/O模型使用重叠数据结构(WSAOVERLAPPED),一次投递1个或多个Winsock I/O请求,并通知缓冲区收发系统直接使用数据,进而缩短了数据使用时间。而且,其CPU占有率和SOCKET连接数也有很好的表现。

管理重叠I/O请求的完成情况有事件对象通知和完成例程2种方法。这里采用事件对象通知并对其进行了封装。

3.4 内存管理

如何在软件运行时合理地对计算机内存资源的分配和使用,是提高系统运行效率的重要手段。因此,除采用传统的优化的方法外,还特别注重了以下几个方法的运用:

①在进行内存管理时首先需注意内存页面的合理配置,尽量保持页面连续、大小适当且能够及时清理不再使用的页面;

②可以通过调整高速缓存区域的大小和及时释放内存空间的方法,提高数据交换的速度;

③针对高频度小数据包的特点,避免采用频繁对内存的申请与释放操作。运用空间换时间的思想,采用内存块管理技术,将内存操作降到最低;

④定义的内存管理操作。在系统中采用一致的内存管理机制,提高效率,避免了内存泄露;

⑤精炼存储数据,优化数据结构。

在采用上述诸多措施与手段外,还运用了服务器进程的优化和同步等编程技术,进一步提高了系统效率。

4 系统验证

采取了将接收、处理、分发的处理过程分配在不同线程的软件结构,并运用重叠I/O模型及软件编程各种优化措施之后,进一步对信息收发系统的效率进行了验证。

4.1 验证环境

验证的软件环境采用了Windows系列操作系统,SQL Server 2000完成数据存储,开发平台选用Microsoft Visual Studio.Net 2003。

硬件设备分别采用了DELL台式计算机和IBM工作站2种硬件设备作为信息收发服务器。其硬件配置如下:

①DELL台式机的CUP为 2.79MHz,内存512 MB,主板为INTEL 945芯片组;

②IBM工作站的CPU为Celeron 2.53 MHz,内存为512 GB。

此外,为保证信息收发系统的正常运行,还分别开发了数据驱动源和后端接收服务的模拟程序。

4.2 验证方法

为了获得第一手原始素材,采用程序检测法进行系统性能指标的测试和验证。即在信息收发系统中的关键点处加入程序测试探针,并记录测试数据,尽可能获取接近真实情况的测试数据。

信息收发系统性能中处理时间为关键指标。因此,分别在数据接收、内存转换、库存储和发送处理的前后采集时间,获得各处理所花费的时间,并加以整理与评估。

为进一步验证数据包大小、数据量、发送频度以及接收服务端数对系统性能的影响程度,在验证过程中,按照上述条件改变数据驱动源提供的数据,以便得到更详尽的验证结果。

5 结果分析

在DELL台式机上进行的部分检测结果如表2所示,其中频度为800条/s。

表2 DELL台式机测试结果

由表2可以看出,系统的处理时间与分发对象的种类、分发频率关系不大,而数据量的大小起到了重要作用。在数据量总体较小的情况下,采用合理的系统结构、I/O模型以及对内存的有关管理,可以完成信息收发的功能。若数据量过大,则需选择高性能服务器。

在IBM工作站上进行的部分测试结果如表3所示,其中频度为800条/s。

表3 IBM服务器测试结果

数据量、数据获取频度与数据库存储时间之间的变化趋势如图3所示。

图3 数据库存储测试结果

由此可见,数据接收、发送及内存转换所占时间的比重都很小,不是提高效率的关键。而数据库存储耗时长,成为提高效率的关键环节。经过对数据库进行适当优化后,系统整体效率有明显提升。

6 结束语

系统性能的研究与评价是一个方兴未艾的研究方向。信息收发系统的作为信息系统的汇集与分发的关键环节,其系统性能起到至关重要的作用。提高系统整体性能要从系统角度分析,针对各种影响因素采取优化策略,并将其应用于系统中。此外,还针对实际应用情况进一步进行了验证与分析,从中找出了影响该系统性能的主要因素。通过上述研究,对提高此类系统的性能提出了参考模式,对类似系统性能的提升具有借鉴价值。

[1]BONDI A B.The Software Architect as the Guardian of System Performance and Scalability[C].Vancouver,Canada:Leadership and Management in Software Architecture,2009:28-31.

[2]CHANG JM,GEHRINGGER E.A High-performance Memoryallocatorfor Obiected-oriented System[J].IEEE Transactions on Computers,1996,45(3):357-366.

[3]任泰明.TCP/IP协议与网络编程计[M].陕西:西安电子科技大学出版社,2004.

[4]罗军舟,黎波涛,杨 明,等.TCP/IP协议及网络编程技术[M].北京:清华大学出版社,2004.

[5]赵文辉,周加林,徐 俊,等.网络存储技术[M].北京:清华大学出版社,2005.

[6]王文武,赵卫东,王志成,等.高性能服务器底层网络通信模块的设计方法[J].计算机工程,2009,35(3):103-105.

猜你喜欢
频度数据包内存
“春夏秋冬”的内存
当代陕西(2019年13期)2019-08-20 03:54:22
SmartSniff
眨眼频度可判断烟瘾大小
妇女之友(2017年3期)2017-04-20 09:20:00
铜绿假单胞菌MIC分布敏感百分数与抗菌药物使用频度相关性研究
基于Libpcap的网络数据包捕获器的设计与实现
基于内存的地理信息访问技术
视觉注意的数据包优先级排序策略研究
移动IPV6在改进数据包发送路径模型下性能分析
上网本为什么只有1GB?
频度副词问与答