发明内容
为解决上述问题本发明提供了一种数据采集调度的方法。
为实现本发明目的提供的一种数据采集调度的方法,包括以下步骤:
读取各目标服务器的采集指标配置信息,设置每个采集指标的等待调度时间t_wait的值为所述配置信息中的指标采集周期t_cycle的值,并构建包含各目标服务器的采集指标配置信息及所述等待调度时间t_wait的数据表单schedule_table;
读取调度服务器中预设的数据采集时间片t_slice的值,设置调度服务器中的定时采集调度器的采集时间间隔为所述t_slice的值,将所述采集时间间隔点作为调度时间点,并启动所述定时采集调度器;
当所述定时采集调度器调度时间点到达时,所述数据表单中各个目标服务器的各采集指标的等待调度时间t_wait的值减去数据采集时间片t_slice的值,作为新的等待调度时间t_wait的值;将所述等待调度时间t_wait的值小于等于0的采集指标加入到调度服务器的任务队列;同时将值小于等于0的采集指标的等待调度时间t_wait的值重新设置为所述采集指标的指标采集周期t_cycle的值,然后等待下一个调度时间点的到达。
较佳地,作为一种可实施方式,在所述读取各目标服务器的采集指标配置信息,设置每个采集指标的等待调度时间t_wait的值为所述配置信息中的指标采集周期t_cycle的值,并构建包含各目标服务器的采集指标配置信息及所述等待调度时间t_wait的数据表单schedule_table之前,还包括以下步骤:
读取调度服务器的数据采集模式schedule_mode;
所述数据采集模式包括立即采集模式和延迟采集模式;
在所述立即采集模式下,启动定时采集调度器时则对目标服务器的各项采集指标进行采集调度;
在所述延迟采集模式下,启动定时采集调度器时不对目标服务器的各项采集指标进行采集调度,只有当某项采集指标等待调度时间t_wait小于等于0时对所述采集指标进行采集调度。
较佳地,作为一种可实施方式,所述当所述定时采集调度器调度时间点到达时,所述数据表单中各个目标服务器的各采集指标的等待调度时间t_wait的值减去数据采集时间片t_slice的值,作为新的等待调度时间t_wait的值;将所述等待调度时间t_wait的值小于等于0的采集指标加入到调度服务器的任务队列;同时将值小于等于0的采集指标的等待调度时间t_wait的值重新设置为所述采集指标的指标采集周期t_cycle的值,然后等待下一个调度时间点的到达,包括以下步骤:
当定时采集调度器调度时间点到达时,所述数据表单中各个目标服务器的各采集指标的等待调度时间t_wait的值减去数据采集时间片t_slice的值,得到更新后的新的等待调度时间t_wait的值;
检测出每台目标服务器的各采集指标的所述新的等待调度时间t_wait的值小于等于0的采集指标;
将每台目标服务器中的等待调度时间t_wait的值小于等于0的采集指标组成采集调度指标集合,发送所述采集调度指标集合到采集任务,并将所述采集调度指标集合中的采集指标的等待调度时间t_wait的值重新设置为所述采集指标的指标采集周期t_cycle的值,直至下一个调度时间点的到达;
发送所述采集任务到调度服务器的任务队列,并由所述调度服务器执行调度。
较佳地,作为一种可实施方式,所述读取调度服务器中预设的数据采集时间片t_slice的值,设置调度服务器中的定时采集调度器的采集时间间隔为所述t_slice的值,将所述采集时间间隔点作为调度时间点,并启动所述定时采集调度器,包括以下步骤:
当所述数据采集模式schedule_mode为立即采集模式时,启动定时采集调度器后,立即发送每个目标服务器需要采集的采集指标集合到采集任务。
较佳地,作为一种可实施方式,所述采集任务为独立的线程,并且为异步执行。
较佳地,作为一种可实施方式,所述数据采集调度的方法,还包括以下步骤:
当目标服务器的数量和/或采集指标的指标采集周期发生变化时,在所构建的数据表单中增加新的目标服务器、删除要减少的目标服务器和/或改变所述采集指标的指标采集周期及等待调度时间;
所述当目标服务器的数量和/或采集指标的指标采集周期发生变化时,在所构建的数据表单中增加新的目标服务器、删除要减少的目标服务器和/或改变所述采集指标的等待调度时间,包括:
当有新的目标服务器加入时,则将所述新的目标服务器的采集指标配置信息加入到所构建的数据表单中,得到变换后的新的数据表单;
当有目标服务器退出时,则将所述目标服务器信息从所构建的数据表单中删除,得到变换后的新的数据表单;
当需要变更所述数据表单中一目标服务器的一采集指标的原指标采集周期为新的指标采集周期时,用所述新的指标采集周期的值替换所述原指标采集周期的值,并比较所述新的指标采集周期与当前等待调度时间的大小,在所述新的指标采集周期小于当前等待调度时间时,用所述新的指标采集周期的值代替所述一目标服务器的一采集指标的等待调度时间的值,得到变换后的新的数据表单。
较佳地,作为一种可实施方式,所述采集指标配置信息包括:服务器标识,采集指标,指标编码及指标采集周期t_cycle。
基于同一发明构思的一种数据采集调度的系统,包括数据表单构建模块,定时采集调度器设置模块及采集指标调度模块,其中:
所述数据表单构建模块,用于读取各目标服务器的采集指标配置信息,设置每个采集指标的等待调度时间t_wait的值为所述配置信息中的指标采集周期t_cycle的值,并构建包含各目标服务器的采集指标配置信息及所述等待调度时间t_wait的数据表单schedule_table;
所述定时采集调度器设置模块,用于读取调度服务器中预设的数据采集时间片t_slice的值,设置调度服务器中的定时采集调度器的采集时间间隔为所述t_slice的值,将所述采集时间间隔点作为调度时间点,并启动所述定时采集调度器;
所述采集指标调度模块,用于当所述定时采集调度器调度时间点到达时,所述数据表单中各个目标服务器的各采集指标的等待调度时间t_wait的值减去数据采集时间片t_slice的值,作为新的等待调度时间t_wait的值;将所述等待调度时间t_wait的值小于等于0的采集指标加入到调度服务器的任务队列;同时将值小于等于0的采集指标的等待调度时间t_wait的值重新设置为所述采集指标的指标采集周期t_cycle的值,然后等待下一个调度时间点的到达。
较佳地,作为一种可实施方式,所述数据采集调度的系统,还包括数据采集模式读取模块,其中:
所述数据采集模式读取模块用于读取调度服务器的数据采集模式schedule_mode;
所述数据采集模式包括立即采集模式和延迟采集模式;
在所述立即采集模式下,启动定时采集调度器时则对目标服务器的各项采集指标进行采集调度;
在所述延迟采集模式下,启动定时采集调度器时不对目标服务器的各项采集指标进行采集调度,只有当某项采集指标等待调度时间t_wait小于等于0时对所述采集指标进行采集调度。
较佳地,作为一种可实施方式,所述采集指标调度模块,包括等待调度时间计算子模块,等待调度时间判断子模块,采集任务处理子模块及采集任务发送子模块,其中:
所述等待调度时间计算子模块,用于当定时采集调度器调度时间点到达时,所述数据表单中各个目标服务器的各采集指标的等待调度时间t_wait的值减去数据采集时间片t_slice的值,得到更新后的新的等待调度时间t_wait的值;
所述等待调度时间判断子模块,用于检测出每台目标服务器的各采集指标的所述新的等待调度时间t_wait的值小于等于0的采集指标;
所述采集任务处理子模块,用于将每台目标服务器中的等待调度时间t_wait的值小于等于0的采集指标组成采集调度指标集合,发送所述采集调度指标集合到采集任务,并将所述采集调度指标集合中的采集指标的等待调度时间t_wait的值重新设置为所述采集指标的指标采集周期t_cycle的值,直至下一个调度时间点的到达;
所述采集任务发送子模块,用于发送所述采集任务到调度服务器的任务队列,并由所述调度服务器执行调度。
较佳地,作为一种可实施方式,所述数据采集调度的系统,还包括数据表单更改模块,其中:
所述数据表单更改模块,用于当目标服务器的数量和/或采集指标的指标采集周期发生变化时,在所构建的数据表单中增加新的目标服务器、删除要减少的目标服务器和/或改变所述采集指标的等待调度时间;
所述数据表单更改模块包括第一更改子模块,第二更改子模块及第三更改子模块,其中:
所述第一更改子模块,用于当有新的目标服务器加入时,则将所述新的目标服务器的采集指标配置信息加入到所构建的数据表单中,得到变换后的新的数据表单;
所述第二更改子模块,用于当有目标服务器退出时,则将所述目标服务器信息从所构建的数据表单中删除,得到变换后的新的数据表单;
所述第三更改子模块,用于当需要变更所述数据表单中一目标服务器的一采集指标的原指标采集周期为新的指标采集周期时,用所述新的指标采集周期的值替换所述原指标采集周期的值,并比较所述新的指标采集周期与当前等待调度时间的大小,在所述新的指标采集周期小于当前等待调度时间时,用所述新的指标采集周期的值代替所述一目标服务器的一采集指标的等待调度时间的值,得到变换后的新的数据表单。
较佳地,作为一种可实施方式,所述配置信息包括:服务器标识,采集指标,指标编码及指标采集周期t_cycle。
本发明的有益效果包括:
本发明提供的一种数据采集调度的方法及系统,通过构建包含各目标服务器的采集指标配置信息及等待调度时间的数据表单,在定时采集调度器的调度时间点到达时,对所述数据表单中的等待调度时间进行处理判断,并将满足条件的采集指标发送到任务队列中,从而实现了在大规模环境下,对各目标服务器的各项采集指标进行细粒度的数据采集调度,一台目标服务器的同一个调度时间点上需要采集的采集指标在一个采集任务中,减轻了目标服务器的采集压力及调度服务器的调度压力。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图对本发明实施例的晶圆图处理方法及系统的具体实施方式进行说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例的一种数据采集调度的方法,如图1所示,包括以下步骤:
S100,读取各目标服务器的采集指标配置信息,设置每个采集指标的等待调度时间t_wait的值为所述配置信息中的指标采集周期t_cycle的值,并构建包含各目标服务器的采集指标配置信息及所述等待调度时间t_wait的数据表单schedule_table;
所述各目标服务器的采集指标配置信息,如表1所示,包括服务器标识,采集指标,指标编码及指标采集周期t_cycle。
表1采集指标配置信息
此处需要说明的是在大规模环境下,目标服务器标识必须唯一,一般使用目标服务器的名称作为所述目标服务器的服务器标识,这样能在大规模环境中保持目标服务器标识的唯一性,从而能够准确的发送指标采集任务到相应的目标服务器。
所述采集指标具体为要对所述目标服务器进行采集的各项指标的名称,如CPU使用率,CPU使用量,内存使用率,内存使用量,磁盘使用率等,需要说明的是,此处所述采集指标所包含的各项采集指标的名称一般定义为清楚简洁,而且方便记忆及理解的名称,以便方便用户的查看及后续的修改。
不同的目标服务器中所包含的采集指标的数目及具体内容可能相同也可以各有不同,每一目标服务器中所包含的所述采集指标的数目及具体内容根据需要设定,此为成熟技术,此处不再作一一详细说明。
所述指标编码为本数据采集调度的方法中所使用的编码;
为确保准确的对所述采集指标进行数据采集,对于不同的采集指标使用不同的编码,如上述CPU使用率的指标编码为cpu_usage_rate,CPU使用量的指标编码为cpu_usage,内存使用率的编码为mem_usage_rate;对于不同的目标服务器的同一采集指标使用相同的指标编码,如目标服务器1和目标服务器2中的CPU使用率的指标编码都为cpu_usage_rate。
所述指标采集周期t_cycle为正整数,且所有服务器的所有指标的指标采集周期的时间单位一致。
较佳地,作为一种可实施方式,本实施例中,所述指标采集周期的单位为秒。
所述各目标服务器的采集指标配置信息可以用使用XML文件、json文件或数据库方式存储在调度服务器中。
较佳地,作为一种可实施方式,本实施例中使用XML文件格式将所述指标配置信息存储在调度服务器中。
调度服务器读取各目标服务器的采集指标配置信息,设置每个采集指标所对应的等待调度时间t_wait的值为所述配置信息中的指标采集周期t_cycle的值,即令等待调度时间t_wait=t_cycle,并构建包含各目标服务器的采集指标配置信息及所述等待调度时间t_wait的数据表单schedule_table,如表2所示。
表2数据表单
较佳地,作为一种可实施方式,所述数据表单保存在调度服务器中,从而提高数据采集调度的的效率。
S200,读取调度服务器中预设的数据采集时间片t_slice的值,设置调度服务器中的定时采集调度器的采集时间间隔为所述t_slice的值,将所述采集时间间隔点作为调度时间点,并启动所述定时采集调度器;
根据调度服务器中所预设的数据采集时间片t_slice,设置所述调度服务器中的定时采集调度器的采集时间间隔,设置完成之后启动所述定时采集调度器,此时定时采集调度器开始工作,则每经过一个采集时间间隔到达定时采集调度器的调度时间点,到达所述调度时间点则会对所构建的数据表单中的等待调度时间进行处理,并对满足条件的采集指标进行处理。
此处需要说明的是,所述t_slice的值也为正整数,且能够为所述等待调度时间t_wait的值所整除,而且所述t_slice与所述等待调度时间t_wait的单位相同。同时,为了提高效率,降低调度服务器的资源压力,所述t_slice的值不应该过小。
较佳地,作为一种可实施方式,本实施例中,所述t_slice设定为10秒,所述等待调度时间t_wait单位为妙,且其值为10的整数倍。
较佳地,作为一种可实施方式,所述数据采集调度的方法,还包括以下步骤:
S010,读取调度服务器的数据采集模式schedule_mode;
所述数据采集模式包括立即采集模式和延迟采集模式;
在所述立即采集模式下,启动定时采集调度器时,则对目标服务器的各项采集指标进行采集调度;
在所述延迟采集模式下,启动定时采集调度器时不对目标服务器的各项采集指标进行采集调度,只有当某项采集指标等待调度时间t_wait小于等于0时对所述采集指标进行采集调度。
较佳地,作为一种可实施方式,本实施例中采用立即采集模式。因此,当设置定时采集调度器的采集时间间隔为所述t_slice的值,并启动所述定时采集调度器后,则立即对所述数据表单中各目标服务器的各项采集指标进行一次采集调度,即发送采集任务到各目标服务器。
S300,当所述定时采集调度器调度时间点到达时,所述数据表单中各个目标服务器的各采集指标的等待调度时间t_wait的值减去数据采集时间片t_slice的值,作为新的等待调度时间t_wait的值;将所述等待调度时间t_wait的值小于等于0的采集指标加入到调度服务器的任务队列;同时将值小于等于0的采集指标的等待调度时间t_wait的值重新设置为所述采集指标的指标采集周期t_cycle的值,然后等待下一个调度时间点的到达。
较佳地,作为一种可实施方式,所述S300,具体包括以下步骤:
S310,当定时采集调度器调度时间点到达时,所述数据表单中各个目标服务器的各采集指标的等待调度时间t_wait的值减去数据采集时间片t_slice的值,得到更新后的新的等待调度时间t_wait的值;
对所有服务器的所有采集指标的等待调度时间t_wait根据公式等待调度时间t_wait=等待调度时间t_wait-t_slice计算所述等待调度时间t_wait的新的值。
需要说明的是,对于某一目标服务器的某一个采集指标的所述等待调度时间t_wait的初始值为步骤S100中所读取的所述目标服务器的配置信息中为所述采集指标所配置的采集指标周期t_cycle的值,因此,当定时采集调度器的调度时间点到达时,根据公式等待调度时间t_wait=t_wait-t_slice计算所述等待调度时间t_wait的新的值,则经过所设定的定时采集调度器的采集间隔时间之后,所述采集指标的等待调度时间减少所述采集间隔时间。
依据上述可知,所述数据表单中的各目标服务器的各采集指标的等待调度时间随定时采集调度器每个调度时间点的到达逐渐减小。
S320,检测出每台目标服务器的各采集指标的所述新的等待调度时间t_wait的值小于等于0的采集指标;
当所述定时采集调度服务器的调度点到达时,对所述数据表单中所有目标服务器的所有采集指标的等待调度时间t_wait的值进行判断,判断其是否等于0或者小于0,检测出所述采集指标的等待调度时间t_wait的值小于或者等于0的采集指标。
所述等待调度时间t_wait的值是随着所述定时采集调度器每个调度时间点的到达逐渐减少的,当所述定时采集调度器的某个调度时间点到达时,若所述等待调度时间t_wait的值小于等于0,则说明此采集指标已经没有等待时间,即应该对此采集指标立即进行采集,所述采集调度器应立即发送此采集指标的采集任务到调度服务器的任务队列。
S330,将每台目标服务器中的等待调度时间t_wait的值小于等于0的采集指标组成采集调度指标集合,发送所述采集调度指标集合到采集任务,并将所述采集调度指标集合中的采集指标的等待调度时间t_wait的值重新设置为所述采集指标的指标采集周期t_cycle的值,直至下一个调度时间点的到达;
步骤S320检测出每台目标服务器中采集指标的等待调度时间t_wait的值小于等于0的采集指标,在每一调度时间点到达时,所述数据表单中任意一台目标服务器中等待调度时间t_wait的值小于等于0的采集指标可能没有,可能有一个,也可能有多个。因此,将数据表单中每一台目标服务器中所有满足条件的采集指标,即等待调度时间t_wait的值小于等于0的采集指标,组成采集调度指标集合,之后发送所述采集调度指标集合到采集任务,对于没有等待调度时间t_wait的值小于等于0的采集指标的目标服务器则不生成采集调度指标集合。
同时将所述采集调度指标集合中的采集指标的等待调度时间t_wait的值重新设置为所述采集指标的指标采集周期t_cycle的值,即等待调度时间t_wait=t_cycle。
此处需要说明的是,将等待调度时间t_wait的值小于等于0的采集指标,组成采集调度指标集合,之后发送所述采集调度指标集合到采集任务,后续将对所述采集调度指标集合中的采集指标进行采集调度,则所述采集调度指标集合中的采集指标的指标采集周期的本周期已经完成,将进入下一个指标采集周期,因此将所述采集指标的等待调度时间t_wait的值设置为所述采集指标的指标采集周期t_cycle的值,从而进入下一个指标采集周期。
此处需要说明的是,根据前面所述,一般情况下,采集指标的等待调度时间t_wait=t_cycle其值为所述t_slice的值的整数倍,即等待调度时间t_wait=n*t_slice,当第一个调度时间点到达时,等待调度时间t_wait的值减去t_slice的值,即等待调度时间t_wait=等待调度时间t_wait-t_slice=n*t_slice-t_slice=(n-1)*t_slice,当第n个调度时间点到达时,等待调度时间t_wait=等待调度时间t_wait-t_slice=n*t_slice-n*t_slice=0,此时满足条件等待调度时间t_wait的值小于等于0,将此采集指标加入到采集调度指标集合中,并发送到采集任务,后续将对所述采集调度指标集合中的采集指标进行采集调度。
但是在某些特殊情况下,当等待调度时间t_wait的值不是所述t_slice的值的整数倍时,则会出现在某一个调度时间点到达时,等待调度时间t_wait的值减去t_slice的值所得到的新的等待调度时间t_wait的值小于0的情况,则当所述新的等待调度时间t_wait的值小于0时,将所述采集指标加入到所述采集调度指标集合中,并发送到采集任务,后续将对所述采集调度指标集合中的采集指标进行采集调度。
S340,发送所述采集任务到调度服务器的任务队列,并由所述调度服务器执行调度。
在步骤S330中将每台目标服务器中所有等待调度时间小于等于0的采集指标组成采集调度指标集合,并将所述采集调度指标集合发送到采集任务中。在本步骤中进一步将所述采集任务发送到调度服务器的任务队列中,完成对目标服务器采集指标的数据采集调度。
此处需要说明的是,对于所述数据表单中的目标服务器,生成一个采集调度指标集合则发送一个采集任务到任务队列中,调度服务器发送任务队列中的采集任务到相应的目标服务器,保证了大规模环境下任务调度的可靠性、高效性、及时性。
所述调度服务器发送任务队列中的采集任务到相应的目标服务器,及执行调度,为成熟技术,此处不再详细说明。
同一目标服务器在同一个调度时间点需要采集的指标在一个采集任务中,调度服务器发送一次采集任务到目标服务器,减轻了目标服务器的采集压力,同时也减轻了调度服务器的调度压力。
较佳地,作为一种可实施方式,所述采集任务为独立的线程,并且为异步执行,因此,调度程序不会因为发起任务执行而堵塞等待任务执行,不影响调度服务器的调度。
较佳地,作为一种可实施方式,本发明实施例的一种数据采集调度方法还包括以下步骤:
S400,当目标服务器的数量和/或采集指标的指标采集周期发生变化时,在所构建的数据表单中增加新的目标服务器、删除要减少的目标服务器和/或改变所述采集指标的指标采集周期及等待调度时间;
较佳地,作为一种可实施方式,所述S400,具体包括以下步骤:
S410,当有新的目标服务器加入时,则将所述新的目标服务器的采集指标配置信息加入到所构建的数据表单中,得到变换后的新的数据表单;
如表3所示,为新的目标服务器的配置信息,将所述新的目标服务器的配置信息添加到所构建的数据表单中,得到如表4所示变换后的新的数据表单。在定时采集调度器的下一个调度时间点到达时,对数据表单中新添加的新的目标服务器进行处理(等待调度时间减去采集时间片的时间,采集指标的等待调度时间小于等于0时,发送所述采集指标到采集任务)。
表3新目标服务器的配置信息
表4新的数据表单
从表4中可以看出,数据表单中新加入的目标服务器不会对原有的目标服务器的采集调度产生影响。
进一步地,当调度服务器的数据采集模式为立即采集模式时,则对所述新的目标服务器的所有采集指标进行一次数据采集调度。
S420,当有目标服务器退出时,则将所述目标服务器信息从所构建的数据表单中删除,得到变换后的新的数据表单;
将所述目标服务器信息从所构建的数据表单中年删除后,则在所述定时采集调度器的下一个调度时间点到达时,调度服务器不会再对所退出的目标服务器进行处理。同样,某目标服务器的退出,不会影响其他原有目标服务器的调度产生影响。
S430,当需要变更所述数据表单中一目标服务器的某采集指标的原指标采集周期为新的指标采集周期时,用所述新的指标采集周期的值替换所述原指标采集周期的值,并比较所述新的指标采集周期与当前等待调度时间的大小,在所述新的指标采集周期小于当前等待调度时间时,用所述新的指标采集周期的值代替所述一目标服务器的某采集指标的等待调度时间的值,得到变换后的新的数据表单。
当需要变更所述数据表单中一目标服务器的某采集指标的原指标采集周期为新的指标采集周期时,用所述新的指标采集周期的值替换所述原指标采集周期的值,使原数据表单中对应的采集指标的指标采集周期的值变换为新的指标采集周期的值,则在下一次更新等待调度时间时使用新的指标采集周期的值,使采集指标采集周期的设置更加灵活。
较佳地,作为一种可实施方式,所述比较所述新的指标采集周期与当前等待调度时间的大小,在所述新的指标采集周期小于当前等待调度时间时,用所述新的指标采集周期的值代替所述一目标服务器的某采集指标的等待调度时间的值,得到变换后的新的数据表单,具体包括以下步骤:
S431,从所述数据表单中读取需要变更的采集指标的当前等待调度时间;
S432,比较所述新的指标采集周期与当前等待调度时间的大小;
S433,当所述新的指标采集周期小于当前等待调度时间时,用所述新的指标采集周期的值代替所述一目标服务器的某采集指标的等待调度时间的值。
当所述新的指标采集周期小于当前等待调度时间时,用所述新的指标采集周期的值代替所述一目标服务器的某采集指标的等待调度时间的值,则经过新的指标采集周期之后调度服务器会对所述采集指标进行采集调度,比变更前的等待调度时间短,保证了采集指标采集调度的正确性。
此处需要说明的是,当调度服务器的采集模式为立即采集模式时,无论所述新的指标采集周期与当前等待调度时间的大小,调度服务器都会对所述采集指标进行一次数据采集调度。
为了更好的说明本发明实施例提供的数据采集调度的方法,下面举例进行说明。
步骤S501,读取调度服务器的数据采集模式schedule_mode;
本例中调度服务器的数据采集模式为延迟采集模式。
步骤S502,读取各目标服务器的采集指标配置信息;
需要进行数据采集的目标服务器及其采集指标配置信息如表5所示,这里的服务器不区分物理主机或虚拟化环境下的虚拟机。
表5实例中配置信息
步骤S503,对所读取的采集指标配置信息使用XML进行配置并存储在调度服务器中;
配置xml文件如下所示:
<schedule>
<slice>10</slice>
<serverid="server1"port="9111">
<cpu_usage_rate>20</cpu_usage_rate>
<cpu_usage>20</cpu_usage>
<mem_usage_rate>40</mem_usage_rate>
<mem_usage>40</mem_usage>
<disk_usage_rate>80</disk_usage_rate>
<disk_read_rate>40</disk_read_rate>
<disk_write_rate>60</disk_write_rate>
</server>
<serverid="server2"port="9111">
<cpu_usage_rate>50</cpu_usage_rate>
<cpu_usage>50</cpu_usage>
<mem_usage_rate>40</mem_usage_rate>
<mem_usage>40</mem_usage>
<network_usage_rate>80</network_usage_rate>
<network_receive_bytes>80</network_receive_bytes>
<network_send_bytes>80</network_send_bytes>
</server>
</schedule>
步骤S504,根据所读取的配置信息,构建数据表单schedule_table;
所构建的数据表单如表6所示。
表6实例中数据表单
从表中可以看出,每个指标的等待调度时间的值与指标采集周期的值一致。
S505,读取调度服务器中预设的数据采集时间片t_slice为10秒;
S506,设置定时采集调度器的采集时间间隔为10秒,启动定时采集调度器;
S507,经过10秒后,schedule_table中的数据动态变化为如表7所示:
表7实例中10秒后数据表单
从表中可以看出数据表单中的各采集指标的等待调度时间的值相对于初始状态都减少了10秒,但所有等待调度时间的值都大于0,因此不必进行采集调度。
每个调度时间点到达,均会动态的变化上述表格中指标等待调度时间的值,计算方式为当前的等待调度时间t_wait值减去调度器的调度时间片t_slice,即10秒。如果某个调度时间点到达时,根据服务器计算出的等待执行时间为0的指标集合数量大于0,则对该服务器发起对该指标集合的数据采集任务,该任务为加入到任务执行队列中的任务执行器执行,执行方式为多线程方式。进一步地,应该更新这些指标集合中的每个指标的等待调度时间t_wait的值为指标的配置时间间隔t_cycle。
S508,再经过10秒后,schedule_table中的数据动态变化为如表8所示:
表8实例中20秒后数据表单
如表8所示,server1的cpu_usage_rate、cpu_usage的等待调度时间t_wait的值为0,这两个采集指标将会被调度。
S509,将server1的cpu_usage_rate、cpu_usage这两个采集指标组成采集调度指标集合,并发送采集调度指标集合到采集任务;
S510,发送所述采集任务到任务队列;
S520,更新数据表单中server1的cpu_usage_rate、cpu_usage的等待调度时间t_wait值分别为20、20;
更新后的数据表单如表9所示。
表9实例中更新后的数据表单
基于同一发明构思,本发明还提供一种数据采集调度的系统,由于此系统解决问题的原理与前述一种数据采集调度的方法相似,因此,该系统的实施可以根据前述的方法实现,重复之处不再赘述。
本发明实施例的一种数据采集调度的系统,如图2所示,包括数据表单构建模块100,定时采集调度器设置模块200及采集指标调度模块300,其中:
所述数据表单构建模块100,用于读取各目标服务器的采集指标配置信息,设置每个指标的等待调度时间t_wait的值为所述配置信息中的指标采集周期t_cycle的值,并构建包含各目标服务器的采集指标配置信息及所述等待调度时间t_wait的数据表单schedule_table;
所述各目标服务器的采集指标配置信息:目标服务器标识,采集指标,指标编码及指标采集周期t_cycle。
所述各目标服务器的采集指标配置信息可以用使用XML文件、json文件或数据库方式存储在调度服务器中。
较佳地,作为一种可实施方式,本实施例中使用XML文件格式将所述指标配置信息存储在调度服务器中。
所述定时采集调度器设置模块200,用于读取调度服务器中预设的数据采集时间片t_slice的值,设置调度服务器中的定时采集调度器的采集时间间隔为所述t_slice的值,将所述采集时间间隔点作为调度时间点,并启动所述定时采集调度器;
根据调度服务器中所预设的数据采集时间片t_slice,设置所述调度服务器中的定时采集调度器的采集时间间隔,设置完成之后启动所述定时采集调度器,此时定时采集调度器开始工作,则每经过一个采集时间间隔到达定时采集调度器的调度时间点,到达所述调度时间点则会对所构建的数据表单中的等待调度时间进行处理,并对满足条件的采集指标进行处理。
较佳地,作为一种可实施方式,本实施例中所述t_slice设定为10秒,且t_slice与所述等待调度时间t_wait及所述t_cycle的单位都为秒。
较佳地,作为一种可实施方式,本实施例的数据采集调度的系统,还包括数据采集模式读取模块010,其中:
所述数据采集模式读取模块010用于读取调度服务器的数据采集模式schedule_mode;
所述数据采集模式包括立即采集模式和延迟采集模式;
在所述立即采集模式下,启动定时采集调度时器则对目标服务器的各项采集指标进行采集调度;
在所述延迟采集模式下,启动定时采集调度器时不对目标服务器的各项采集指标进行采集调度,只有当某项采集指标等待调度时间t_wait小于等于0时对所述采集指标进行采集调度。
所述采集指标调度模块300,用于当所述定时采集调度器调度时间点到达时,所述数据表单中各个目标服务器的各采集指标的等待调度时间t_wait的值减去数据采集时间片t_slice的值,作为新的等待调度时间t_wait的值;将所述等待调度时间t_wait的值小于等于0的采集指标加入到调度服务器的任务队列;同时将值小于等于0的采集指标的等待调度时间t_wait的值重新设置为所述采集指标的指标采集周期t_cycle的值,然后等待下一个调度时间点的到达。
较佳地,作为一种可实施方式,所述采集指标调度模块300,包括等待调度时间计算子模块310,等待调度时间判断子模块320,采集任务处理子模块330及采集任务发送子模块340,其中:
所述等待调度时间计算子模块310,用于当定时采集调度器调度时间点到达时,所述数据表单中各个目标服务器的各采集指标的等待调度时间t_wait的值减去数据采集时间片t_slice的值,得到更新后的新的等待调度时间t_wait的值;
本实施例中,在每次定时采集调度器调度时间点到达时,所述等待调度时间减少10秒,随着每个调度时间点的到达逐渐减少。
所述等待调度时间判断子模块320,用于检测出每台目标服务器的各采集指标的所述新的等待调度时间t_wait的值小于等于0的采集指标;
当所述定时采集调度服务器的调度点到达时,所述等待调度时间判断子模块320,对所述数据表单中所有目标服务器的所有采集指标的等待调度时间t_wait的值进行判断,判断其是否等于0或者小于0,检测出所述采集指标的等待调度时间t_wait的值小于或者等于0的采集指标。
所述采集任务处理子模块330,用于将每台目标服务器中的等待调度时间t_wait的值小于等于0的采集指标组成采集调度指标集合,发送所述采集调度指标集合到采集任务,并将所述采集调度指标集合中的采集指标的等待调度时间t_wait的值重新设置为所述采集指标的指标采集周期t_cycle的值,直至下一个调度时间点的到达;
采集任务处理子模块330将等待调度时间t_wait的值小于等于0的采集指标,组成采集调度指标集合,之后发送所述采集调度指标集合到采集任务,后续将对所述采集调度指标集合中的采集指标进行采集调度,则所述采集调度指标集合中的采集指标的指标采集周期的本周期已经完成,将进入下一个指标采集周期,因此将所述采集指标的等待调度时间t_wait的值设置为所述采集指标的指标采集周期t_cycle的值,从而进入下一个指标采集周期。
所述采集任务发送子模块340,用于发送所述采集任务到任务队列,并由所述调度服务器执行调度。
较佳地,作为一种可实施方式,所述数据采集调度的系统,还包括数据表单更改模块400,其中:
所述数据表单更改模块400,用于当目标服务器的数量和/或采集指标的指标采集周期发生变化时,在所构建的数据表单中增加新的目标服务器、删除要减少的目标服务器和/或改变所述采集指标的等待调度时间;
较佳地,作为一种可实施方式,所述数据表单更改模块400包括第一更改子模块410,第二更改子模块420及第三更改子模块430,其中:
所述第一更改子模块410,用于当有新的目标服务器加入时,则将所述新的目标服务器的采集指标配置信息加入到所构建的数据表单中,得到变换后的新的数据表单;
所述第二更改子模块420,用于当有目标服务器退出时,则将所述目标服务器信息从所构建的数据表单中删除,得到变换后的新的数据表单;
所述第三更改子模块430,用于当需要变更所述数据表单中一目标服务器的一采集指标的原指标采集周期为新的指标采集周期时,用所述新的指标采集周期的值替换所述原指标采集周期的值,并比较所述新的指标采集周期与当前等待调度时间的大小,在所述新的指标采集周期小于当前等待调度时间时,用所述新的指标采集周期的值代替所述一目标服务器的一采集指标的等待调度时间的值,得到变换后的新的数据表单。
此处需要说明的是,所述数据表单更改模块400根据目标服务器的数量和/或采集指标的指标采集周期发生变化时,改变所述数据表单中的相应信息时,对所述数据表单中原有的,不需要变动的信息部做改变,因此,增加或删除数据表单中的目标服务器或更改所述数据表单中的某个或某些采集指标时,对数据表单中原有的采集指标的调度没有影响。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。