赵军锋 庄怀东 赵 亮 杜庆伟
(1. 南京轨道交通系统工程有限公司 南京 210019; 2. 南京航空航天大学计算机科学与技术学院南京 210019;3. 中国电子科技集团公司第十四研究所 南京 210019; 4. 软件新技术与产业化协同创新中心 南京 210019)
大规模数据并发环境下视频监控系统的研究与实现
赵军锋1庄怀东2赵 亮3杜庆伟4
(1. 南京轨道交通系统工程有限公司 南京 210019; 2. 南京航空航天大学计算机科学与技术学院南京 210019;3. 中国电子科技集团公司第十四研究所 南京 210019; 4. 软件新技术与产业化协同创新中心 南京 210019)
城市轨道交通综合监控系统中的视频监控子系统与多个业务子系统共处同一个网络环境中,具有大规模数据并发特点。首先,介绍视频监控子系统所采取的策略,然后介绍基于订阅/分发模型的视频数据规划,最后,重点研究视频分发过程中的负载均衡技术。在多台服务器工作的条件下,根据服务器的性能和负载等因素,提出一种基于动态测量的负载均衡技术,实验证明,该负载均衡技术可以有效地降低时延,提高系统的吞吐量,并均衡各个服务器的负载。关键词 轨道交通;大数据;视频监控;订阅/分发模型;负载均衡
视频监控系统(CCTV)是行车单位和客运单位重要的辅助系统,很多研究单位开发或提出了相应的视频监控系统解决方案,如文献[1~7]等。笔者课题组正在开发有轨电车综合调度与控制系统(TICC),该系统需要综合集成众多的子系统,如环境与设备监控子系统(BAS)、电力监控子系统(SCADA)、乘客信息子系统(PIS)等,很多子系统都具有大规模数据并发传输的特点。视频监控子系统具有以下特点:摄像头的布置密度大、数量众多、高清晰化,导致视频监控子系统本身就具有大规模数据并发的特点,这对视频监控子系统提出了很高的性能要求。
视频数据与其他众多监控子系统的数据通过同一个城域网进行数据传输,其他子系统的数据会对视频数据产生影响,如果视频数据太多,也会对其他监控数据产生较大影响。因此,必须对视频监控子系统进行良好的设计,并进行相关的研究。
为了应对大规模数据并发的情况,提出以下策略:
1) 错时发送:将实时视频数据和历史视频数据错时发送,避免对网络负载造成较大影响。
2) 视频数据规划:通过良好的视频数据规划,尽量减少数据的冗余。
3) 数据融合和事件判断的本地化:这是针对其他子系统的,这些系统的数据具有一定的相似性,特别是在没有异常事件发生的情况下,可以采用事件判断的本地化和数据融合等方法减少对网络的占用。
4) 负载均衡:通过数据的均衡发送,减少单个服务器的负载情况。
当前摄像头厂商提供的例程往往采用直连模式,即将播放屏幕和摄像头进行关联,直接播放视频,这种方式极易造成信息流的冗余。假设m个用户同时监控相同的n个摄像头,那么就需要m×n个视频流同时在网络上传输,冗余度为m,极大地浪费了带宽。为此系统采用了订阅/分发模型[8-9],形成视频分发矩阵,降低视频数据的冗余度。
定义1: 视频分发矩阵M1保存了视频流与客户端对应关系的数据结构,体现为一个二维矩阵
(1)
其中cij(i=1…m,j=1…n)表示客户i对摄像头j的订阅关系,如果cij=1,表示客户i对摄像头j产生了订阅,否则cij=0。
定义2: 订阅/分发模型定义了一种1对多的依赖关系,通过中介让多个订阅者同时监听某一个实时视频对象。当视频对象产生新数据时,中介会通知所有订阅者对象接收新的视频数据。
在该系统中,由服务器承担中介的角色,对客户端的订阅请求进行监听,实时更改订阅信息,流程见图1。
图1 订阅/取消订阅算法流程
订阅/分发模型所做的工作其实就是解耦合[10]。通过订阅/分发模型可将视频产生者和视频消费者封装在独立的对象中,它们可以各自独立地改变和复用。这样,通过视频服务器的一次中转,使得当多个监控客户端监控同一台摄像机时,从车站视频摄像头到服务器之间长距离的视频流最多保持一路,可以大大降低视频数据的冗余度以及网络带宽的负载。
系统保存了所有摄像机的设备解码信息和视频分发信息(视频分发矩阵),作为全局信息提供给视频订阅分发服务使用。
在图1中,如果要登录摄像头,需要将一个回调函数注册给指定的摄像头,一旦登录成功,摄像头便利用此函数向系统返回视频头/视频,系统收到数据后才能进行相关的处理。回调函数定义如下:
void CALLBACK PsDataCallBack(LONG lRealHdle, DWORD dDataType, BYTE*pPcktBuffer, DWORD nPcktSize, void* pUser)
视频头对于播放视频来说至关重要,不能丢失,因此把视频头事先保存在内存数据库中,用户在订阅前需先获得视频头,并将其放置在播放屏幕中。视频数据丢失若干帧影响不大,可以采用效率高的UDP协议,考虑到实现的简单性,没有采用RTP协议。
服务器端在处理完毕视频订阅(包括相应的登录过程)后,就可以接收到摄像头发送的视频数据,并根据视频分发矩阵,将视频逐个发给每一个订阅者。
3.1 架构
为保证整个系统的高性能运行,系统部署多台服务器,形成从视频摄像头到客户端的多条路径。基于此,对数据的传输进行了负载均衡研究。负载均衡是网络中用来在多个网络链路或者服务器之间划分负载的一项技术[11-12]。
首先,需将原有的二级订阅模型修改为三级订阅模型,即服务器接收客户端的订阅后并不是自己进行摄像头登录,而是把这个任务传递给摄像头所在的车站工控机,由工控机进行摄像头登录和数据的采集,并转发给某个服务器,再由服务器分发给客户端。
系统中的负载均衡架构主要包括:负载均衡控制器(包括测量器、均衡器、调度规则发放器等)、若干服务器、车站端的工控机以及客户端,如图2所示。
图2 负载均衡架构
多台服务器和控制器相连,作为负载均衡的实际执行者进行视频数据的分发,多台服务器一起提供相同的服务,可以在增加计算能力的同时,减少单点故障的发生,提供更高的可靠性,同时获得最小的时延和最大的吞吐量。实时数据库的存在可以方便多个服务器及时地同步信息,包括订阅信息,任何一台服务器都可以接受客户端的订阅,并同步到其他服务器上。
测量器收集服务器的状态,并向均衡器报告。均衡器维护着服务器的地址列表,根据搜集的信息规划调度规则,并通过发放器发给车站工控机。每条调度规则以摄像头为处理粒度,用于指明具体的转发方向。
车站工控机基于接收的调度规则,在多个服务器之间划分视频流向,并将视频数据发给指定的服务器,由服务器进行视频的分发。
3.2 服务器的权值计算
确定调度的依据是进行负载均衡的重要内容,调度的依据可以规划为权值。在传统的负载均衡方案中,基于服务器性能设置的权值是固定不变的,但服务器的处理能力是随负载的改变而动态变化的,使用固定的权值不能最优化均衡负载。同时,客户端请求的类型(除了视频,还有其他子系统的相关处理)也是不同的,计算密集型的请求消耗更多的CPU资源,而带宽密集型的请求需要更大的带宽,因此,需要设置一种更灵活、更准确的权值计算方法。
在异构的服务器环境中,服务器的配置不同,性能上也会有所差异。本文基于如下参数计算服务器的处理能力:CPU频率、内存大小及网卡带宽,服务器si的处理能力C(si)为
C(si)=r1C(CPU)+r2C(mem)+r3C(band)
(2)
参数r表示权值的相关系数,且r1+r2+r3=1,这样能够根据服务的类型对处理能力进行调整。服务器的处理能力越强,说明能够处理的请求越多。
负载是负载均衡必须考虑的,许多因素可以影响服务器的负载,系统考虑了CPU的利用率、内存的利用率和带宽接入速率。因此,服务器si的负载L(si)为
L(si)=r1L(CPU)+r2L(mem)+r3L(band)
(3)
L(si)表示服务器si负载的程度,值越大,负载越重;值越小,负载越轻;L(CPU)表示CPU的使用率;L(mem)表示内存的使用情况;L(band)表示带宽使用率;参数r表示服务的类型对负载产生的影响。
基于此,服务器si当前处理能力的计算公式为
CC(si)=C(si)-L(si)
(4)
其中,CC(si)表示服务器si当前能够处理客户端请求的能力,在为每个服务器计算出当前处理能力之后,使用式(5)计算服务器si当前的权值(设系统具有k个服务器)。
(5)
权值W(si)表示服务器si处理能力在服务器群中的比例,反映了服务器的重要性。
3.3 实现
定义3: 视频转发矩阵M2是保存了视频流与服务器对应关系的数据结构,体现为一个二维矩阵
(6)
式中,aij表示服务器si对摄像头j的转发服务映射关系,如果aij=1,表示si对摄像头j进行转发,否则aij=0。其中,axj(1≤x≤k)组成了视频流j的转发向量。
每收到一个新的订阅命令,服务器就会更新实时数据库中的视频分发矩阵。如果服务器发现需要登录摄像头,则一方面把请求发给负载均衡控制器,另一方面将登录任务转发给摄像头所属的车站工控机,由后者登录和激活摄像头。
负载均衡器计算服务器的负载情况,得到服务器权值,将权值最高的作为该视频流的转发服务器。负载均衡器调整视频转发矩阵,并将视频流n的转发向量发给其所属的车站工控机,工控机即可以根据转发向量转发流量负载到指定的服务器。
3.4 实验和评估
在3台服务器及12个高清摄像头(各有2个订阅)的环境下,采用3种不同的负载均衡算法进行实验,分别是随机算法(每个视频流被随机地转发给一个服务器)、轮询算法(每个视频流按顺序轮流转发给不同的服务器)和本文提出的动态负载均衡算法,分别测量它们的网络吞吐量和传播时延。其中时延是指从工控机获得视频数据到视频到达客户端所经过的平均时间(系统通过NTP协议具有同步的时间);系统吞吐量是指单位时间内所有客户端接收到的视频数据的总和。
图3展示了系统在不同的视频流个数下,使用3种负载均衡算法处理的平均时延。在数据量较低时,因为对网络的影响不大,所以3种算法具有相似的平均时延;但当数据量上升的时候,因为对网络通信产生了较大的影响,而本文提出的算法可确保各个服务器都具有较好的负载均衡性,网络中每个服务器都不会有太长的排队等待发送时延,所以在整个系统的平均时延上具有一定优势。
图3 3种负载均衡算法的平均时延
图4展示了在不同的视频流个数下的网络吞吐量变化情况,可以看出本文提出的负载均衡算法与随机算法和轮询算法相比,可以获得更高的吞吐量。这是因为当数据到达一定量时,由于处理不及时,系统会产生丢包现象,导致吞吐量有所下降。
图4 3种负载均衡算法的吞吐量变化
图5展示了当视频流个数为12时,在3种不同算法下,3台服务器的CPU利用率情况。在使用随机算法的时候,服务器的CPU利用率是最不均衡的,而使用本文负载均衡算法能够让各个服务器都具有相近的CPU利用率。
图5 不同负载均衡算法下的服务器CPU利用率
首先,针对视频监控子系统所面临的大规模数据并发环境,提出了应对策略;然后介绍基于订阅/分发模型的视频数据规划策略,基于这个策略可以大大减少视频数据流的冗余度,从而减轻对网络负载的压力;最后重点研究了视频分发的负载均衡技术,通过将视频流数据均匀地转发到不同的服务器上,再由服务器分发到具体的客户端,可以大大地缓解服务器的压力,并可以降低传播时延,提高网络吞吐量。
[1] 肖东晖,林立.电力系统统一视频监控平台解决方案[J].电力系统自动化,2013,37(5):74-80.
[2] 蔡海燕.基于高清技术的地铁视频监控系统的应用分析[J].科技视界,2012(26):85-86.
[3] 凌力.客运专线综合视频监控系统线路监控技术方案研究[J].铁道通信信号,2009,45(9):47-50.
[4] 宋小通.视频监控系统在轨道交通中的应用分析[J].科技信息,2013(5):116-118.
[5] 孟巍.铁路客运专线综合视频监控系统建设方案[J].铁道通信信号,2007,43(10):41-43.
[6] 宁娟.铁路综合视频监控系统方案设计[J].铁道通信信号,2010,46(2):51-52.
[7] 霍亚楠.城市轨道交通视频监视系统建设方案[J].都市快轨交通,2016,29(4):102-106.
[8] 宋明,董成文,姚珍富.铁路综合视频监控系统中视频媒体流传输模式研究[J].铁道技术监督,2016,44(2):45-48.
[9] 万豪,史浩山,林卓.基于订阅发布机制的中间件系统设计与实现[J] .计算机测量与控制,2012(9):2551-2554.
[12] ZHANG Q, Riska A, SUN W, et al.Workload-aware load balancing for clustered web servers[J].IEEE transactions on parallel and distributed systems, 2005,16(3): 219-233.
(编辑:王艳菊)
Research and Implementation of Video Surveillance System in Large Scale Data Concurrent Environment
Zhao Junfeng1Zhuang Huaidong2Zhao Liang3Du Qingwei4
(1. Nanjing Rail Transit System Co., Ltd., Nanjing 210019; 2. College of Computer Science and Technology,Nanjing University of Aeronautics and Astronautics, Nanjing 211106; 3. The 14th Research Institute of China Electronic Technology Group Corporation, Nanjing 210019; 4. Collaborative Innovation Center for Novel Software and Industrialization, Nanjing 210019)
The CCTV sub-system in the integrated supervisory and control system of urban rail transport shares the same network environment with other sub-systems and has the characteristics of large-scale data concurrency. The strategy of the CCTV to adapt to the large-scale data concurrency, the distribution model of the CCTV, and the load balancing technology during the process of distribution are introduced in this paper. Based on the performance and load measurements of the multiple servers, a load balancing mechanism is developed in view of a dynamic measurement. It has been proved by the experimental tests that this mechanism can reduce transmits delay, improve system throughput, and balance the load between the servers significantly.
urban rail transit; large data; video surveillance; subscription distribution; load balancing
10.3969/j.issn.1672-6073.2016.06.003
2016-05-09
2016-08-16
赵军锋,男,工程师,主要研究方向为分布对象计算,42344345@qq.com
U231.7
A
1672-6073(2016)06-0011-05