张恩硕
(北京工业大学,北京 100020)
为了监控城轨交通的实时情况,越来越多的视频数据和图像数据需要处理,但是监控设备受到自身的制约,数据处理能力有限,很多复杂的计算无法在短时间内完成,长时间进行数据处理还会导致电源电量消耗过快。如果终端设备选择将监控数据上传到服务器去计算,又可能会因为网络条件差产生很高的时延。为提高终端设备的数据处理速度并且延长其使用时间,如何动态的进行数据调度使数据处理时延与能耗降低成为当前很重要的研究问题。
首先建立一个任务调度模型说明本文要研究的问题,任务调度模型主要分为3部分,第一部分是最底层的终端设备,第二部分是中间层的边缘服务器,第三部分是最上层的中心服务器。如图 1所示。
图1 模型分层示意Fig.1 Layers of the model
终端设备、边缘服务器与中心服务器均具备数据处理的能力。本文提出的系统时延与能耗优化算法是使终端设备能够动态的选择数据在本地处理还是上传边缘服务器或中心服务器去处理。而算法中提出两个要优化的指标,时延与能耗,目的是协调终端设备、边缘服务器和中心服务器的工作,使系统中的时延与能耗能够降低,所以要分析系统中时延与能耗的组成。判断数据处理过程如图 2所示。首先是能耗,系统中的能耗就是所有终端设备在工作中所消耗的电量,系统中要优化的能耗主要分为两部分,如图 3所示。第一部分是本地处理消耗的能耗,这部分包括使用调度算法所消耗的能耗以及终端设备采集数据后进行数据处理所消耗的能耗,第二部分是将监控数据上传所消耗的能耗。
图2 数据处理决策流程Fig.2 Flowchart of decision making for data processing
图3 系统能耗组成Fig.3 Components of energy consumption of the system
接下来要对系统能耗进行公式化表示,用S表示系统的中心服务器,在整个系统中,中心服务器只有一台,BS表示边缘服务器,L表示本地,边缘服务器与终端设备都有多台,他们是多对多的关系。同时使用eL表示数据在终端设备上处理数据时的功耗,TL表示监控数据在终端设备上处理的时间。xS,BS表示数据是否进行上传,xS,BS的取值范围为0或1,0表示数据不进行上传,1表示数据上传到服务器,则终端设备在本地进行数据处理所消耗的能耗可表示为公式(1)。
公式(1)中,|BS|表示边缘服务器的数量,|BS|+1表示边缘服务器与中心服务器的总量,中心服务器在系统中只有一台。在进行监控数据上传时,要对所有的边缘服务器和中心服务器进行判断是否符合上传的条件。
接下来公式化数据上传服务器产生的能耗,使用eS,BS表示数据上传服务器产生的功耗,TS,BS表示数据的上传时间。则系统中上传服务器产生能耗可表示为公式(2)。
假定系统中有n个终端设备,这n个终端设备在处理数据的时候会选择数据是否上传,而每个终端设备在处理数据时都要执行一次调度算法进行判断,eP表示调度算法所消耗的功耗,TP是调度算法的执行时间,所以系统中的总能耗表示为公式(3)。
除了能耗,系统中产生的时延也是数据处理需要优化的重要指标。
由图 4可以看出系统中时延组成部分,第一部分是数据的传输时延,这部分时延主要与数据传输速率有关。由于数据处理结果返回终端设备才算数据处理完成,所以传输时延包括上传时延与处理结果返回时延。数据处理时延包括终端设备处理时延、边缘服务器处理时延以及中心服务器处理时延。使用TL,BS表示数据上传到终端设备的时延,TL,B表示数据上传到中心服务器的时延,xS表示数据上传中心服务器,xBS表示数据上传边缘服务器,xS与xBS取值范围为0和1,0表示数据不进行上传,1表示数据上传,系统数据上传时延可以表示为公式(4)。
数据处理完毕,边缘服务器或中心服务器会向终端设备返回数据处理结果。使用TS,L表示数据从中心服务器返回的时延,TBS,L表示数据从边缘服务器返回的时延,则数据回执时延可以表示为公式(5)。
图4 系统时延组成Fig.4 Composition of delays in the system
接下来是数据的处理时延 。数据在终端设备上的处理时延可表示为公式(6)。
使用TS表示数据在中心服务器上的处理时延,TBS表示数据在边缘服务器上的处理时延,则数据上传服务器的处理时延可以表示为公式(7)。
所以系统中的总时延可表示为公式(8)。
最终目标是在减少终端设备能耗的情况下降低系统的时延,提高用户的使用体验。问题的数学表示如公式(9)与公式(10)。公式(9)要满足约束条件(10)。ERTR表示终端设备处理一次数据所消耗的能耗上限,终端设备在进行数据处理时所消耗能耗不能超过这个值,用来对终端设备的能耗损耗进行限制,延长终端设备的使用时间。其中TR的时间并不固定,当监控数据决定在本地处理时,TR表示的时延等于TL,当监控数据决定在服务器上处理时,TR表示的时延等于TS,BS。
BR表示当前电源剩余电量,BALL表示设备的电量充足时的值。k表示剩余电量占设备总电量的百分比。当设备的剩余电量越小,越需要节省电量,对能耗的要求越高。此时会判断数据上传消耗能耗与本地处理消耗能耗的大小,在能耗低的一方进行处理。
对于上文中提出的问题模型,总体上看是一个优化问题,需要综合考虑终端设备在进行数据处理或上传时每个步骤产生的时延与能耗,针对这个问题与因素提出一个系统时延与能耗优化算法。
系统时延与能耗优化算法通过计算函数P(X,ER)判断监控数据的处理位置,如公式(11),从公式(11)可以看出,当剩余电量比较少的情况下,更需要节省电量,所以需要通过一个边界条件限制目标函数只有在可行域范围内得到值是有效的,当接近边界时,优化函数会显著的增大。通过内罚函数的方法,构建惩罚函数,通过惩罚因子a将惩罚函数和目标函数连接在一起,其中a代表对系统能耗的重视程度,a越大说明对能耗的要求越严格。当电池电量过低,就要选择将计算任务在能耗低的一边处理。
一个终端设备要决定数据在哪里处理,就需要对所有可以处理监控数据的地点进行判断。Time表示一个终端设备将监控数据在本地处理或者是上传某一个边缘服务器或中心服务器处理产生的时延。Time可表示为公式(12)。假定终端设备正在判断数据要在哪里处理,用一个参数η来表示终端设备最终判断的结果,η的定义如公式(13),用PL(X,ER)表示使用本地处理数据时优化函数的值,{PBS(X,ER)}表示数据上传边缘服务器时优化函数的值,PS(X,ER)表示数据上传到中心服务器时优化函数的值。
设定数据上传边缘服务器不会出现竞争计算资源的情况,终端设备在采集数据之后首先判断当前剩余电量是否能够支持程序的运行。不够则停止程序运行。如果满足,则判断η的大小。如果η={PL(X,ER)},则数据在本地进行处理。如果η={PBS(X,ER)},则将数据上传边缘服务器执行。如果η={PS(X,ER)},则将数据上传中心服务器去执行。
当系统中有n个设备,每次通过计算都能得到一个终端设备监控数据的处理地点,所有终端设备通过判断之后,最终就可以得到一个解空间。用X表示n个终端设备最后决定的监控数据的处理地点,则解空间可以表示为X={X1,X2,…Xn},根据这个解空间可以求得每个优化函数的值,并且最终可以计算得到系统中的总时延与总能耗是多少。
WS表示与中心服务器的网络连接,WBS表示与边缘服务器的网络连接,0表示断开连接,1表示网络已连接,数据判断处理可表示为公式(14)。
为了计算公式(11)中P(X,ER)函数的值,就要知道整个系统在程序运行时,每个步骤产生的时延与能耗是多少。
首先是监控数据的传输时延,想要计算数据上传到服务器或计算结果返回终端设备会产生多少时延,需要知道当前的数据传输速率是多少。获取当前数据传输速率采用了发送心跳包计算当前网速的方法,每次执行系统时延与能耗优化算法时首先向服务器发送一个心跳包,内含一个字符串,根据从发送到接收消息回执的时间计算当前的数据传输速率,然后根据需要传输的数据量的大小计算数据的传输时延。
其次是终端设备、边缘服务器和中心服务器上的数据处理时延。这部分时延可以通过多次实验进行实验数据采集,获取到每次处理数据量的大小以及它的处理时延。然后计算出终端设备和服务器处理每比特数据平均消耗的时延。之后根据每次要处理的数据量的大小,可以计算出处理数据大约需要多长时间。
最后是系统能耗。根据实验测试,可以知道终端设备在进行本地处理时的电压与电流以及进行监控数据上传时的电压与电流,监控数据在本地的处理时延或者上传服务器的时延可以通过计算得出,以上数据可以计算出本次监控数据在本地处理或是上传服务器会消耗多少能耗。
为了验证算法在城市轨道交通监控系统上的有效性,通过对比以下调度算法处理监控数据并分析实验结果。
1)监控数据不进行数据上传,全部交由终端设备本身去处理。
2)将所有监控数据上传到中心服务器,由中心服务器去处理。
3)所有监控数据上传到边缘服务器,由边缘服务器去处理。
4)使用系统时延与能耗优化算法,通过判断所有位置的可能性然后动态的选择监控数据要在哪里处理。
local表示监控数据在本地处理,edge表示监控数据上传边缘服务器处理,center表示监控数据上传中心服务器处理,local-edge-center表示使用系统时延与能耗优化算法动态选择地点处理监控数据。如图 5所示,图中显示不同调度算法系统平均每分钟的数据处理量,使用系统时延与能耗算法的系统平均每分钟处理的数据量大部分时间都处于最高水平,而且即使在数据传输速率较差的情况下也能自动选择将数据本地处理,使数据处理效率不会因输出传输速率过低而低于本地处理效率。
图5 网络波动较大时平均每分钟处理数据Fig.5 Data is processed average per minute under great network fluctuation
如图 6所示,在数据传输速率较高且网络波动较小的情况下,使用不同调度算法每分钟平均处理的数据量。从图中可以看出,使用系统时延与能耗优化算法的系统平均每分钟处理的数据量大部分时间都是最高的。
如图 7所示,可以看出,使用系统时延与能耗优化算法的功率大部分时间都处于较低水平。图7中第一次功率较高的原因是网络传输速率降低导致该时间段内数据上传产生较高的时延,监控数据在该时间段内多在本地处理,而本地处理消耗的能耗要高于数据上传消耗的能耗,最终导致平均功率要高于将监控数据上传的功率。
图 8表示使用不同调度算法平均每帧消耗的能耗。图 7中出现使用系统时延与能耗优化算法的系统平均功耗高于直接上传服务器的系统的平均功耗的现象,原因是数据传输速率下降导致监控数据上传服务器会产生较高的时延。虽然本地处理功率较高,但是此时本地数据处理的效率也比上传服务器要高,即使用系统时延与能耗优化算法的系统平均每分钟处理的数据量要高于直接上传服务器处理的数据量,最终平均处理每帧消耗的能耗要低于直接上传服务器处理的能耗。从图 8可以看出,使用系统时延与能耗优化算法的系统平均每帧消耗的能耗大部分时间都处于最低水平。
图6 网络通信良好时平均每分钟处理数据Fig.6 Data is processed average per minute under good network communication
图7 终端设备功耗Fig.7 Power consumption of terminal devices
为使城市轨道交通监控系统能够更加高效可靠的工作,本文提出一个系统时延与能耗优化算法,并且通过实验测试,与本地处理、直接上传边缘服务器或直接上传中心服务器等调度算法相比,系统时延与能耗优化算法具有以下优势。
图8 平均每帧消耗能耗Fig.8 Average energy consumption per frame
1)系统产生的时延降低,在相同的时间内,使用系统时延与能耗优化算法的系统能够处理更多的数据。
2)能够根据电量与网络传输速率等因素动态选择数据传输地点。当终端设备电量不足会选择更能省电的方式处理监控数据,延长终端设备的使用时间。
系统时延与能耗优化算法能够合理的调控终端设备与服务器工作,动态的选择数据处理地点,使用系统时延与能耗优化算法的系统能够在提高系统数据处理效率的同时,还能有效的控制系统的能耗,使系统能耗不会过高,延长了终端设备的使用时间。所以本文提出的系统时延与能耗优化算法,能够有效提高监控数据的处理效率,提高城轨交通监控系统的可靠性。