具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例一提供了一种网络数据采集方法,包括:
步骤11、获取各个采集节点的性能效益参数值。
其中,所述性能效益参数值用于表示所述各个采集节点处理性能的优劣。当某个采集节点的处理性能好,它的性能效益参数值相对较大,而当某个采集节点的处理性能差,它的性能效益参数值相对较小。
在本发明实施例中,在获取各个采集节点的性能效益参数值时,可首先获取各个采集节点的各个性能指标参数,然后再分别对所述各个采集节点的各个性能指标参数加权求和,获取所述各个采集节点的性能效益参数值。
其中,所述性能指标参数可以包括采集节点的CPU使用率、网络带宽使用率、任务完成率。或者为了更全面的体现各个采集节点的处理性能,所述性能指标参数还可包括内存使用率。当所述性能指标参数所包括的参数种类越多,对各个采集节点性能的评价越全面,相应的获得的性能效益参数值越能反映出各个采集节点处理性能的优劣,从而使得对各采集节点之间任务的调度更准确。当然,所述性能指标参数还可不仅限于包括在此所列举的几种。
其中,对于各个采集节点中的任何一个采集节点,CPU使用率的计算方式为:U(c)=exp(-μ×CS),其中U(c)表示CPU使用率,CS表示所述采集节点当前的CPU使用率,μ为常数;
内存使用率的计算方式为:U(m)=1-exp(-MS)/1-exp(-TMS),其中U(m)表示内存使用率,MS表示所述采集节点的可用内存量,TMS表示所述采集节点的内存总量;
网络带宽使用率的计算方式为:U(n)=g×Ln(1+h×NS),其中U(n)表示网络带宽使用率,g为常数,h为常数,NS表示所述采集节点的当前可用带宽。
如上所述的,对于某个采集节点,其对应的性能指标参数加权求和即可获得性能效益参数值。
例如,当性能指标参数同时包括CPU使用率、网络带宽使用率和任务完成率时,所述性能效益参数值的计算方式为:
其中,U(w)表示性能效益参数值,ωk为常数且ω1+ω2=1,U(c)表示CPU使用率,U(n)表示网络带宽使用率,δ表示任务完成率,为常数。
当性能指标参数同时包括CPU使用率、网络带宽使用率、内存使用率和任务完成率四种参数时,所述性能效益参数值的计算方式为:
其中,U(w)表示性能效益参数值,ωk为常数且ω1+ω2+ω3=1,U(c)表示CPU使用率,U(m)表示内存使用率,U(n)表示网络带宽使用率,δ表示任务完成率,为常数。
步骤12、根据所述性能效益参数值,确定具有最大性能效益参数值的采集节点。
在此步骤中,可将通过步骤11获取到的各个采集节点的性能效益参数值进行排序,从中确定最大性能效益参数值的采集节点。
步骤13、为所述具有最大性能效益参数值的采集节点分配任务。
具体的,为所述具有最大性能效益参数值的采集节点分配任务时,可将所述采集节点中其他的节点的任务调度到所述具有最大性能效益参数值的采集节点;或者将接收到的新的任务分配给所述具有最大性能效益参数值的采集节点。
例如,共有三个采集节点A、B、C,假设步骤12中确定的最大性能效益参数值的采集节点为采集节点A,也即采集节点A目前处理的任务最少,处理性能最好。因此,可将采集节点B或者C的任务调度到采集节点A上。或者,当接收到新的任务时,可直接将该新的任务分配到采集节点A上,而不对采集节点B或者C进行任务的分配,从而保证采集节点B或C能够更好的处理当前的任务。
分配给采集节点A的任务将会按照FIFO(First In First Out,先进先出)的方式排列在采集节点A的处理任务队列中。同时,采集节点A对分配到的任务进行HTTP(Hyper Text Transfer Protocol,超文本传输协议)请求,然后分析下载到的网页,获得新的URL(Uniform Resource Locator,统一资源定位符),并向监控系统反馈该新的URL。
通过上述可以看出,具有最大性能效益参数值的采集节点的处理性能最优,也就是说它当前所要处理的任务最少,因此,可为所述具有最大性能效益参数值的采集节点分配任务,从而减轻其他采集节点的负担。那么这样,利用本发明实施例的技术方案,可保证在进行网络采集的过程中,各个采集节点都能正常的工作,采集到的数据全面,避免了现有技术中网络采集过程中数据丢失的缺陷,从而提高了网络采集的效率。
在实际应用中,各个采集节点的处理性能会随着其对任务处理情况的变化而有所变化,因此,为了不影响采集节点的处理性能,进一步提高网络采集的效率,如图2所示,本发明实施例二的方法包括:
步骤21、获取各个采集节点的性能效益参数值,其中所述性能效益参数值用于表示所述各个采集节点处理性能的优劣。
步骤22、根据所述性能效益参数值,确定具有最大性能效益参数值的采集节点
步骤23、为所述具有最大性能效益参数值的采集节点分配任务。
其中,步骤21-23的过程可参照本发明实施例一的描述。
步骤24、当到达设定的调度周期时,获取所述各个采集节点的当前性能效益参数值,并确定具有最大当前性能效益参数值的采集节点。
其中,所示当前性能效益参数值和实施例一中的性能效益参数值的计算方式相同,只是随着时间的变化,各个采集节点处理性能也在变化,因此计算当前性能效益参数值时各个参数的值会与计算性能效益参数值时各个参数的值有所不同。其中所述调度周期初始值可任意设置,例如1800秒。
同样还可以通过将获取到的各个采集节点的当前性能效益参数值进行排序的方式,确定最大性能效益参数值的采集节点。
步骤25、根据各个采集节点的当前性能效益参数值调度采集节点间的任务或者调整调度周期。
如果所述采集节点中存在至少的一个采集节点,在此称为第一采集节点,它的当前性能效益参数值低于最小节点性能效益值,那么将所述第一采集节点的任务调度到具有所述最大当前性能效益参数值的采集节点。
具体的,可以将该第一节点的任务的WL倍的任务(0<WL<1)调度到具有所述最大当前性能效益参数值的采集节点。
如果全部采集节点的当前性能效益参数值都低于最小节点性能效益值,那么表示当前各个采集节点负载较重,则延长所述调度周期。如果全部采集节点的当前性能效益参数值都高于最大节点性能效益值,那么表示当前各个采集节点负载较轻,则缩短所述调度周期。
其中,最小节点性能效益值和最大节点性能效益值可根据具体应用环境做相应设置。
通过上述反馈任务调度的方式,根据各个采集节点的当前性能效益参数值,对采集节点的处理能力进行再评估,对当前性能较低的节点中等待的任务进行再分配,并对任务调度周期进行调整,使得各采集节点之间达到近似的负载均衡,从而最大化系统吞吐率,缩短了各个采集节点的任务的等待时间。
如图3所示,本发明实施例三提供了一种网络数据采集装置,包括:
信息获取单元31,用于获取各个采集节点的性能效益参数值,其中所述性能效益参数值用于表示所述各个采集节点处理性能的优劣;节点选取单元32,用于根据所述性能效益参数值,确定具有最大性能效益参数值的采集节点;任务分配单元33,用于为所述具有最大性能效益参数值的采集节点分配任务。
其中,所述信息获取单元31可包括:第一参数获取模块,用于获取所述各个采集节点的性能指标参数;第二参数获取模块,用于分别对所述各个采集节点的性能指标参数加权求和,获取所述各个采集节点的性能效益参数值。
如方法实施例中的描述,所述性能指标参数可以包括采集节点的CPU使用率、网络带宽使用率、任务完成率,或者还可包括内存使用率。当所述性能指标参数所包括的参数种类越多,对各个采集节点性能的评价越全面,相应的获得的性能效益参数值越能反映出各个采集节点处理性能的优劣,从而使得对各采集节点之间任务的调度更准确。其中,所述第二参数获取模块的具体工作过程可参照前述方法实施例的描述。
所述任务分配单元33可具体用于将所述采集节点中其他的节点的任务调度到所述具有最大性能效益参数值的采集节点或者具体用于将接收到的新的任务分配给所述具有最大性能效益参数值的采集节点。
通过上述可以看出,具有最大性能效益参数值的采集节点的处理性能最优,也就是说它当前所要处理的任务最少,因此,可为所述具有最大性能效益参数值的采集节点分配任务,从而减轻其他采集节点的负担。那么这样,利用本发明实施例的技术方案,可保证在进行网络采集的过程中,各个采集节点都能正常的工作,采集到的数据全面,避免了现有技术中网络采集过程中数据丢失的缺陷,从而提高了网络采集的效率。
为使得各采集节点之间达到近似的负载均衡,最大化系统吞吐率,缩短各个采集节点的任务的等待时间,如图4所示,本发明实施例的装置还可包括:信息处理单元34和时间调整单元35。
其中,所述信息处理单元34,用于当到达设定的调度周期时,获取所述各个采集节点的当前性能效益参数值,并确定具有最大当前性能效益参数值的采集节点。所述时间调整单元35,用于在全部采集节点的当前性能效益参数值都低于最小节点性能效益值时,延长所述调度周期;如果在采集节点的当前性能效益参数值都高于最大节点性能效益值时,缩短所述调度周期。
此时,所述任务分配单元33还用于,在所述采集节点中至少一个第一采集节点的当前性能效益参数值低于最小节点性能效益值时,将所述第一采集节点的任务调度到具有所述最大当前性能效益参数值的采集节点。
具体的,所述任务分配单元33可以将该第一节点的任务的WL倍的任务(0<WL<1)调度到具有所述最大当前性能效益参数值的采集节点。
其中,所述当前性能效益参数值的含义与前述方法实施例描述的相同,具体计算过程可参照前述方法实施例的描述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。