万 翔 施齐林
(中国电子科技集团公司第二十八研究所 南京 210007)
分布式数据传输系统关键技术设计*
万 翔 施齐林
(中国电子科技集团公司第二十八研究所 南京 210007)
数据传输系统作为信息系统软件核心构件,是各信息系统中心实现信息交互的前提与基础。论文在基于现有单节点数据传输系统的基础上,提出了分布式数据传输系统的关键技术设计,包括:集群动态组建、心跳守护、服务器注册、服务器发现和集群负载均衡管理。同时通过使用LoadRunner并发性能测试工具,对该分布式数据传输系统在不同集群规模和不同负载压力情况下的数据传输效率进行测试。
分布式数据传输; 集群动态组建; 负载均衡; 并发测试
Class Number TP391
数据传输系统是组建各区域中心和全局信息系统的前提与基础。各信息中心通过数据传输系统实现信息交互、信息共享等操作,将物理上分散的部门通过网络联系起来,实现信息共享与管控。
传统单节点数据传输系统部署模式中,各局域中心部署多传输客户端和单台数据传输服务器,数据传输系统对上层应用提供统一的开发接口,上层应用通过开发接口将数据传输任务提交至传输服务器,由数据传输服务器提供端到端的数据传输服务。单节点数据传输系统部署模式如图1所示。
在该部署模式中,各局域保障中心部署单一数据传输服务器,区域中各客户端的数据传输均依赖于本区域唯一的一台数据传输服务器,当数据传输任务量增加时,其传输时延性能将会成为瓶颈;同时,由于采取单节点部署,在节点服务器出现软件或硬件故障时,会导致整个区域数据传输功能失效,系统可靠性较低[1]。
图1 单节点数据传输系统部署模式
为了改善单节点数据传输系统可靠性低、传输时延大的缺陷,本文设计了分布式数据传输系统。分布式数据传输系统由数据传输客户端、数据传输服务器和数据传输调度服务器组成。分布式数据传输系统部署模式如图2所示。
图2 分布式数据传输系统部署模式
在分布式数据传输系统中,各局域保障中心部署多台数据传输服务器,各服务器节点之间具有物理分离、功能一致、相互独立的特点。数据传输服务集群由多台数据传输服务器节点组成,共同为用户提供传输服务。为实现对传输集群实现状态管理和任务调度,达到资源负载的最优化分配,各区域保障中心内部署一台数据传输调度服务器,数据传输调度服务器实现数据传输服务器的动态扩展支持、资源负载调度、服务心跳守护等功能[2]。
分布式数据传输系统主要由数据传输调度服务器和数据传输服务器集群组成。分布式数据传输系统设计的关键技术包括:集群动态组建[3]、服务器注册、服务心跳守护、服务器发现和负载均衡管理。
2.1 集群动态组建
分布式数据传输系统集群规模必须支持可动态增减,最小集群规模由一台数据传输服务器组成[4]。用户根据需要可动态增加数据传输服务器集群数目,实现数据传输能力的动态扩展。
当动态数据传输集群能力扩展时,新增的数据传输服务器会自动向数据传输调度服务器发起注册,并定时向调度服务发送心跳数据包上报传输服务器运行状态和负载状态。
当集群内部某台数据传输服务器出现故障无法正常工作时,传输调度服务器要能够在设定的时间内监测到该传输服务器失效事件,并将故障服务器从传输集群中删除,不再对其进行任务分发操作[5]。
分布式数据传输集群的动态组建功能具有非常大的环境适应性,便于用户根据需要搭建规模适度的传输系统。
2.2 服务器注册
分布式数据传输系统中包含多个数据传输服务器,并支持数据传输服务器的动态扩展。数据传输服务器通过向数据传输调度服务器发送注册报文,完成服务器注册。数据传输服务器注册与注册数据格式如图3所示。
图3 数据传输服务器注册与注册数据格式示意图
2.3 心跳守护
数据传输调度服务器负责管理集群内各传输服务器的运行状态,实时监听来自集群内数据传输服务器的心跳信息,并通过心跳判定服务器活动状态[6]。当数据传输调度服务器超过一定时间未接收到某台数据传输服务器心跳报文时,判定该传输服务器处于僵死状态(可能是网络不连通、宕机等),数据传输调度服务器从服务器管理队列中删除对应的数据传输服务器信息,且不会继续分发传输任务至该服务器[7]。
服务之间的心跳守护示意图和心跳报文格式如图4所示。
图4 心跳守护示意图与报文格式
2.4 服务器发现
分布式传输系统中,数据传输服务器与数据传输调度服务器之间物理相连,但位置独立。对各服务器的启动顺序不应进行假设[8]。当数据传输服务器在进行注册时,数据传输调度服务器可能未启动,导致注册信息丢失。数据传输调度服务器在启动过程中创建服务器心跳监听线程,监听来自集群内传输服务器的心跳信息。通过心跳信息,数据传输调度服务可发现已启动的数据传输服务器。
2.5 负载均衡管理
数据传输调度服务器维护集群内数据传输服务器负载状态,负载由当前传输任务数、服务器CPU利用率和服务器内存利用率三个因素决定[9]。在本文所设计的分布式传输系统中,数据传输服务器负载采用如下经验公式进行计算:
服务器负载= 当前任务数*0.6+CPU利用率*0.2
+内存利用率*0.2
集群内传输服务器将服务器状态属性以心跳报文形式定时上传至数据传输调度服务器。数据传输调度服务器在接收到传输任务时,通过计算各服务器负载选择负载最低的传输服务器并将传输任务分发至该传输服务器[10]。传输服务器在执行完传输任务后,向传输调度服务器发送任务完成通知。数据传输任务分发示意图如图5所示。
图5 数据传输任务分发示意图
本文根据阐述的分布式数据传输系统设计完成了软件原型设计,为验证分布式数据传输系统与单节点数据传输部署模式在性能上的优劣,本文采用惠普公司研发的并发性能测试软件LoadRunner对数据传输系统在不同部署模式、不同集群规模、不同任务并发数和不同传输数据量的情况下分别进行性能测试。并发性能测试环境如图6所示。
实验中,数据传输时延为并发模拟器产生的模拟数据通过传输集群发送至数据传输时延统计工具的传输时延。通过LoadRunner模拟指定数量的数据传输并发用户。LoadRunner并发模拟器与数据传输接收统计工具事先通过网络对时服务进行对时,在模拟报文中获取本机时间戳,当数据传输接收统计工具接收到模拟报文时,再次获取本机时间戳并计算时间差值,统计数据传输时延。
图6 LoadRunner并发性能测试环境组成
数据传输系统在不同部署模式下,传输数据长度为300字节随机数据的传输时延统计如图7所示。
图7 传输数据长度300字节时延统计
数据传输系统在不同部署模式下,发送长度为1K字节随机数据的传输时延统计如图8所示。
图8 传输数据长度1K字节时延统计
分布式数据传输系统在不同部署模式下,发送长度为10K字节随机数据的传输时延统计如图9所示。
图9 传输数据长度10K字节传输时延统计
通过上述并发性能测试数据,可以得出如下结论:
1) 与现有单节点数据传输系统相比,分布式数据传输系统能够有效降低多并发任务下的传输时延,提高数据传输实时性;
2) 在用户传输数据长度达到一定临界值时,扩展集群传输能力可以有效地降低数据传输时延。
本文提出了分布式数据传输系统设计的关键技术,并通过并发性能测试工具验证了在不同部署模式、不同集群规模、不同并发任务数和不同传输数据量情况下的数据传输性能。与单节点数据传输系统相比,本文提出的分布式数据传输系统具有以下优势:
1) 分布式数据传输系统能够有效降低多并发用户数据传输时的时延,提高数据传输的实时性;
2) 分布式数据传输系统支持集群内数据传输服务器的动态增加和减少,便于用户根据具体环境,部署合适规模的系统;
3) 分布式数据传输系统通过部署多台数据传输服务器,提高了系统的可靠性。
同时,本文所提出的分布式数据传输系统仍然需要改进并进行以下方面的研究:
1) 通过数据传输性能测试,证明了传输集群部署模式的优势,但并未就传输时延与集群规模、传输任务并发数和传输数据量大小得出定量关系结论;
2) 该分布式传输系统中包含有传输调度服务器,本文对传输调度服务器的可靠性未做出详尽分析,在后续的系统优化中,应考虑传输调度服务器的冗余备份和故障恢复。
[1] 汤扣林,徐大勇.指挥信息系统软件可靠性设计[J].指挥信息系统与技术,2014.
[2] 靳雪梅.基于协同运行的进离港排序系统的设计[J].指挥信息系统与技术,2010,1(4):1-4.
[3] N. Srinivas, Kalyanmoy Deb. Multi-objective Optimization Using Nondominated Sorting in Genetic Algorithms. Evolutionary Computation,1994,2(3):221-248.
[4] Rajkumar Buyya. High Performance Cluster Computing: Architectures and Systems Vol[M]. Ⅰ. Prentice-Hall,1999:2-30.
[5] S. Jamin, C. Jin, Y. Jin, et al. On the placement of Internet instrumentation[C]//Proc. IEEE INFOCOM,2000:295-304.
[6] Mohyud-Din, S. T., M. A. Noor. Some Relatively New Techniques for Nonlinear Problems. Mathematical Problems in Engineering,2009.
[7] Konak, A., D. W. Coit. Multi-objective Optimization Using Genetic Algorithms: A Tutorial. Reliability Engineering & System Safety,2006,91(9):992-1007.
[8] S Deering, R Hinden. Internet protocol version 6(IPv6) specification. RFC 2460, Dec. 1998.
[9] Morrison, R.S.: Cluster Computing - Architectures, Operating Systems, Parallel Processing & Programming Languages,2003.
[10] Jeffrey Horn, Nicholas Nafpliotis, David E. Goldberg. A Niched Pareto Genetic Algorithm for Multi-objective Optimization[C]//Proceedings of the First IEEE Conference on Evolutionary Computation, IEEE World Congress on Computational Intelligence. Piscataway, New Jersey: IEEE Service Center,1994,1:82-87.
Key Design of Distributed Data Transmission System
WAN Xiang SHI Qilin
(The 28thResearch Institute of China Electronics Technology Group Corporation, Nanjing 210007)
As the core component of information system, data transmission system is the premise and foundation of information exchanging between different systems. This paper is based on the existing single node pattern, puts forward the key design of distributed data transmission system, including dynamic cluster formation, heartbeat daemon, server registration, load balancing and so on. At the same time, through the use of concurrent LoadRunner performance testing tool, the efficiency of distributed data transmission system in different cluster sizes and load pressure is tested.
distributed data transmission, dynamic cluster formation, load balancing, concurrency testing
2014年10月20日,
2014年11月29日
万翔,男,助理工程师,研究方向:分布式处理技术。施齐林,男,助理工程师,研究方向:分布式处理技术。
TP391
10.3969/j.issn1672-9730.2015.04.026