CN115964254A - 一种动态调整监控数据处理速度的方法、系统及介质 - Google Patents
一种动态调整监控数据处理速度的方法、系统及介质 Download PDFInfo
- Publication number
- CN115964254A CN115964254A CN202310250539.1A CN202310250539A CN115964254A CN 115964254 A CN115964254 A CN 115964254A CN 202310250539 A CN202310250539 A CN 202310250539A CN 115964254 A CN115964254 A CN 115964254A
- Authority
- CN
- China
- Prior art keywords
- len
- data
- expect
- time
- consumption
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000012544 monitoring process Methods 0.000 title claims abstract description 132
- 238000012545 processing Methods 0.000 title claims abstract description 41
- 238000000034 method Methods 0.000 title claims abstract description 38
- 230000002596 correlated effect Effects 0.000 claims abstract description 4
- 230000006870 function Effects 0.000 claims description 16
- 230000009191 jumping Effects 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 12
- 230000003247 decreasing effect Effects 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 12
- 238000004519 manufacturing process Methods 0.000 description 7
- 230000000875 corresponding effect Effects 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 238000006424 Flood reaction Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 239000004816 latex Substances 0.000 description 1
- 229920000126 latex Polymers 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种动态调整监控数据处理速度的方法、系统及介质,方法包括:把被监控主机上报上来的监控数据指标暂时缓存到消息队列中以将被监控主机和服务端的数据消费逻辑解耦;通过服务端定时按照期望消费数Len_Expect从消息队列中取出不多于期望消费数Len_Expect的监控数据进行数据消费,再通过动态调整期望消费数Len_Expect以使得服务端进行数据消费的速度与监控主机上报监控数据的速度正相关。本发明能够解决因监控数据不定时、不定量涌入服务端,导致服务端负载忽高忽低的问题。
Description
技术领域
本发明涉及监控数据处理领域,具体涉及一种动态调整监控数据处理速度的方法、系统及介质。
背景技术
目前,运维监控方向的监控方案绝大部分都通过采集器和时序数据库去进行监控指标采集的采集和存储。监控数据上报一般由被监控端控制上报周期,且每台被监控端的监控数据采集器数量、类型都是不定的,即每台被监控端监控数据上报特征为不定时、不定量。如图1所示,当被监控主机规模足够大,该类监控数据一般会以类潮汐方式不定时不定量地涌入至数据库所在的服务端,造成服务端可能在某些时刻空转,在某些时刻负载极高,在时间线上出现负载忽高忽低的情况;若引入消费队列,由于无法探知被监控主机上报监控数据量的变化,数据库会以定量地方式消费监控数据,可能导致队列内数据积压和监控数据消费延迟的情况。一般情况下,服务端配置要求需要大于最高时负载,造成设备成本过高和监控服务端资源浪费。
发明内容
本发明要解决的技术问题:针对现有技术的上述问题,提供一种动态调整监控数据处理速度的方法、系统及介质,能够解决因监控数据不定时、不定量涌入服务端,导致服务端负载忽高忽低的问题,使服务端监控数据处理与被监控端数据上报解耦,根据被监控端数据上报状况,动态调整处理速度,尽量以相对平稳的方式进行监控数据消费和处理。
为了解决上述技术问题,本发明采用的技术方案为:
一种动态调整监控数据处理速度的方法,包括:
S1,把被监控主机上报上来的监控数据指标暂时缓存到消息队列中以将被监控主机和服务端的数据消费逻辑解耦;
S2,通过服务端定时按照期望消费数Len_Expect从消息队列中取出不多于期望消费数Len_Expect的监控数据进行数据消费,再通过动态调整期望消费数Len_Expect以使得服务端进行数据消费的速度与监控主机上报监控数据的速度正相关。
进一步的,步骤S2中动态调整期望消费数Len_Expect时,还包括根据服务端取出的监控数据记录计算实际近似平均消费数Len_AVG,若Len_Expect>A×Len_AVG成立,则判定服务端进行数据消费的速度超过监控主机上报监控数据的速度并减少期望消费数Len_Expect,其中A为大于1的系数。
进一步的,所述计算实际近似平均消费数Len_AVG的函数表达式为:
Len_AVG = (Len_AVG + Len_Actual)/2
上式中,Len_Actual为服务端进行数据消费的实际消费数。
进一步的,所述判定服务端进行数据消费的速度超过监控主机上报监控数据的速度并减少期望消费数Len_Expect时,减少期望消费数Len_Expect的函数表达式为:
Len_Expect= Len_Expect - (Len_Expect - Len_AVG)/2
上式中,Len_AVG为实际近似平均消费数。
进一步的,步骤S2中动态调整期望消费数Len_Expect时,还包括根据服务端取出的监控数据记录获取已消费数据最近时间Latest_Time,若当前时间、已消费数据最近时间Latest_Time之差大于预设上限值,则判定服务端进行数据消费的速度落后于监控主机上报监控数据的速度并增加期望消费数Len_Expect;若当前时间、已消费数据最近时间Latest_Time之差小于预设下限值,则判定服务端进行数据消费的速度超过于监控主机上报监控数据的速度并减少期望消费数Len_Expect。
进一步的,所述判定服务端进行数据消费的速度落后于监控主机上报监控数据的速度并增加期望消费数Len_Expect时,增加期望消费数Len_Expect的函数表达式为:
Len_Expect= Len_Expect + (Now - Latest_Time)/B×C
上式中,Now为当前时间,Latest_Time为已消费数据最近时间,B为预设的时间参数,C为调整期望消费数Len_Expect的间隔时间。
进一步的,所述判定服务端进行数据消费的速度超过于监控主机上报监控数据的速度并减少期望消费数Len_Expect时,减少期望消费数Len_Expect的函数表达式为:
Len_Expect= Len_Expect - D
上式中,D为预设的递减参数。
进一步的,步骤S2包括:
S101,初始化设置实际消费数Len_Actual、期望消费数Len_Expect、实际近似平均消费数Len_AVG、已消费数据最近时间Latest_Time以及时间戳Adjust_Time,且时间戳Adjust_Time被初始化为当前时刻;
S102,等待一个定时的周期;
S103,通过服务端按照期望消费数Len_Expect从消息队列中取出不多于期望消费数Len_Expect的监控数据进行数据消费,并确定实际消费数Len_Actual;
S104,更新计算实际近似平均消费数Len_AVG;
S105,更新计算已消费数据最近时间Latest_Time;
S106,判断当前时刻、时间戳Adjust_Time之间的时间差大于调整期望消费数Len_Expect的间隔时间C是否成立,若不成立,则跳转步骤S102,否则跳转步骤S107;
S107,判断Len_Expect>A×Len_AVG是否成立,若Len_Expect>A×Len_AVG成立,则判定服务端进行数据消费的速度超过监控主机上报监控数据的速度并减少期望消费数Len_Expect,更新时间戳Adjust_Time为当前时刻,跳转步骤S102;否则跳转步骤S108;
S108,判断若当前时间、已消费数据最近时间Latest_Time之差大于预设上限值是否成立,若当前时间、已消费数据最近时间Latest_Time之差大于预设上限值成立,则判定服务端进行数据消费的速度落后于监控主机上报监控数据的速度并增加期望消费数Len_Expect;更新时间戳Adjust_Time为当前时刻,跳转步骤S102;否则跳转步骤S109;
S109,判断若当前时间、已消费数据最近时间Latest_Time之差小于预设下限值是否成立,若当前时间、已消费数据最近时间Latest_Time之差小于预设下限值成立,则判定服务端进行数据消费的速度超过于监控主机上报监控数据的速度并减少期望消费数Len_Expect;更新时间戳Adjust_Time为当前时刻,跳转步骤S102。
本发明还提出一种动态调整监控数据处理速度的系统,包括相互连接的微处理器和存储器,所述微处理器被编程或配置以执行任意一项所述动态调整监控数据处理速度的方法。
本发明还提出一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序用于被微处理器编程或配置以执行任意一项所述动态调整监控数据处理速度的方法。
附图说明
图1为未使用动态调整时监控数据处理趋势折线示意图。
图2为本发明实施例一的方法流程图。
图3为本发明实施例一中步骤S2详细流程图。
图4为本发明实施例一中使用动态调整时监控数据处理趋势折线示意图。
图5为本发明实施例二的系统方框图。
图6为本发明实施例二的系统数据流方框示意图。
具体实施方式
实施例一
本实施例提出一种动态调整监控数据处理速度的方法,应用于监控数据处理服务端,如图2所示,包括:
S1,把被监控主机上报上来的监控数据指标暂时缓存到消息队列中以将被监控主机和服务端的数据消费逻辑解耦;本实施例使用Rabbitmq或Nats等消息队列组件搭建消息队列,供多条客户端不定时写入若干条监控数据;
S2,通过服务端定时按照期望消费数Len_Expect从消息队列中取出不多于期望消费数Len_Expect的监控数据进行数据消费,再通过动态调整期望消费数Len_Expect以使得服务端进行数据消费的速度与监控主机上报监控数据的速度正相关。
本实施例的步骤S1将消息队列置于被监控主机与服务端之间,把被监控主机上报上来的监控数据指标暂时缓存到消息队列中。有效地将被监控主机数据上报与服务端数据处理和存储逻辑解耦,即被监控主机不定时不定量的监控数据上报都将暂时存储到消息队列中,服务端可定时定量地进行数据消费,不因监控数据上报的不确定性导致服务器负载的间歇性飙升。
本实施例的步骤S2中动态调整期望消费数Len_Expect时,还包括根据服务端取出的监控数据记录计算实际近似平均消费数Len_AVG,若Len_Expect>A×Len_AVG成立,则判定服务端进行数据消费的速度超过监控主机上报监控数据的速度并减少期望消费数Len_Expect,其中A为大于1的系数。
实际近似平均消费数Len_AVG反应了当前数据处理是否过快。当数据处理过慢时,Len_AVG应该略小于或等于期望消费数Len_Expect,即在每次向消息队列请求获取Len_Expect条数据时,由于消息队列中有足够的数据可消费,所以都拿到了对应数量或略小于该数量的数据;当数据处理过快时,每次向消息队列请求获取Len_Expect条数据时,由于消息队列中没有足够的数据以供消费,所以拿到的数据都远小于Len_Expect条。消息队列中数据的积压则表明了消费数量与生产数量的大小关系,有积压说明消费数量小于生产数量,无积压说明消费数量大于生产数量。因而可以在消费数量过大即期望消费数Len_Expect过大时及时将期望消费数Len_Expect降低。
本实施例中,计算实际近似平均消费数Len_AVG的函数表达式为:
Len_AVG = (Len_AVG + Len_Actual)/2(1)
上式中,Len_Actual为服务端进行数据消费的实际消费数。
本实施例中的A取值为5,若期望消费数Len_Expect大于实际近似平均消费数Len_AVG的5倍以上,说明消息队列中消息消费速度远大于生产速度,则认为目前期望消费数Len_Expect过高,需降低期望消费数Len_Expect,判定服务端进行数据消费的速度超过监控主机上报监控数据的速度并减少期望消费数Len_Expect时,期望消费数Len_Expect减少期望消费数Len_Expect与实际近似平均消费数Len_AVG的差值的一半,因此减少期望消费数Len_Expect的函数表达式为:
Len_Expect= Len_Expect - (Len_Expect - Len_AVG)/2(2)
上式中,Len_AVG为实际近似平均消费数。
进一步的,步骤S2中动态调整期望消费数Len_Expect时,还包括根据服务端取出的监控数据记录获取已消费数据最近时间Latest_Time,若当前时间、已消费数据最近时间Latest_Time之差大于预设上限值,则判定服务端进行数据消费的速度落后于监控主机上报监控数据的速度并增加期望消费数Len_Expect;若当前时间、已消费数据最近时间Latest_Time之差小于预设下限值,则判定服务端进行数据消费的速度超过于监控主机上报监控数据的速度并减少期望消费数Len_Expect。
已消费数据最近时间Latest_Time反映了当前数据处理过快或过慢。消息队列是以先进先出的原则进行数据存储和消费,监控数据指标的时间则严格按照当前时间上报,也就是说消息队列中数据时间是从小到大排列(从旧到新),已消费数据最近时间Latest_Time越大说明目前消息队列中剩余的数据越新,变相说明当前数据处理过快,反之说明剩余的数据越旧,变相说明了当前数据处理过慢。因而可以在期望消费数Len_Expect过小时及时将期望消费数Len_Expect增加,在期望消费数Len_Expect过大时及时将期望消费数Len_Expect减小。
本实施例中判定服务端进行数据消费的速度落后于监控主机上报监控数据的速度并增加期望消费数Len_Expect时,增加期望消费数Len_Expect的函数表达式为:
Len_Expect= Len_Expect + (Now - Latest_Time)/B×C(3)
上式中,Now为当前时间,Latest_Time为已消费数据最近时间,B为预设的时间参数,C为调整期望消费数Len_Expect的间隔时间。设置期望消费数Len_Expect的间隔时间主要是为将期望消费数Len_Expect动态调整间隔拉长,从而有足够多的数据样本来计算实际近似平均消费数Len_AVG和已消费数据最近时间Latest_Time。具体的,B取值为45,C取值为15,若当前时间Now大于已消费数据最近时间Latest_Time45秒以上,说明目前消费的数据为较旧数据,消息队列中出现了数据积压,则认为目前期望消费数Len_Expect过低,需增加期望消费数Len_Expect,即期望消费数Len_Expect增加当前时间戳与最新指标时间戳差值对45的倍数乘15。
本实施例中判定服务端进行数据消费的速度超过于监控主机上报监控数据的速度并减少期望消费数Len_Expect时,减少期望消费数Len_Expect的函数表达式为:
Len_Expect= Len_Expect– D(4)
上式中,D为预设的递减参数。具体的,D取值为3,若当前时间Now与已消费数据最近时间Latest_Time差值小于10秒,说明目前消费的数据为较新数据,消息队列中有可能即将出现消息消费速度大于生产速度,则认为目前期望消费数Len_Expect略高,则期望消费数Len_Expect减少3。
以上判断依次互斥执行,并对调整后的期望消费数Len_Expect进行校验,防止出现因特殊情况导致小于0或远大于系统可承载数据量的情况。
结合以上内容,如图3所示,本实施例的步骤S2包括:
S101,初始化设置实际消费数Len_Actual、期望消费数Len_Expect、实际近似平均消费数Len_AVG、已消费数据最近时间Latest_Time以及时间戳Adjust_Time,且时间戳Adjust_Time被初始化为当前时刻;
进入数据消费循环,包括步骤S102至步骤S105:
S102,等待一个定时的周期,本实施例中周期为300毫秒,可以根据实际业务需要进行调整;
S103,通过服务端按照期望消费数Len_Expect从消息队列中取出不多于期望消费数Len_Expect的监控数据进行数据消费,并确定实际消费数Len_Actual,具体包括:
若消息队列中未消费数据量大于或等于当前时刻期望消费数Len_Expect指定的消费数,消息队列返回当前时刻期望消费数Len_Expect指定的消费数的数据;
若消息队列中未消费数据量小于当前时刻期望消费数Len_Expect指定的消费数,则等待一段时间使得消息队列获取新的数据,本实施例中等待时间为100毫秒,可以根据实际业务需要进行调整,这段时间内,若消息队列中未消费数据量等于当前时刻期望消费数Len_Expect指定的消费数,返回指定的消费数的数据,若消息队列中未消费数据量小于当前时刻期望消费数Len_Expect指定的消费数而阻塞超过100毫秒,则消息队列返回所有未消费数据;
上述各种情况中,从消息队列中所获取的数据数量即为实际消费数Len_Actual;
S104,根据前述式(1)更新计算实际近似平均消费数Len_AVG;
S105,更新计算已消费数据最近时间Latest_Time,即将从消息对联中获取的数据的最近时间更新已消费数据最近时间Latest_Time;
时间差值判断,包括步骤S106:
S106,判断当前时刻Now、时间戳Adjust_Time之间的时间差大于调整期望消费数Len_Expect的间隔时间C是否成立,若不成立,则跳转步骤S102,否则跳转步骤S107;本步骤的时间差值判断主要是为将期望消费数Len_Expect动态调整间隔拉长,从而有足够多的数据样本来计算实际近似平均消费数Len_AVG和已消费数据最近时间Latest_Time,既保证了每次期望消费数Len_Expect的动态调整不会过于剧烈导致服务器负载有较大波动,也保证在较长的时间内进行的数据统计足够可靠,使得期望消费数Len_Expect的调整量足够准确;
进入期望消费数Len_Expect动态调整逻辑,包括步骤S107至步骤S109:
S107,判断Len_Expect>A×Len_AVG是否成立,若Len_Expect>A×Len_AVG成立,则判定服务端进行数据消费的速度超过监控主机上报监控数据的速度并减少期望消费数Len_Expect,更新时间戳Adjust_Time为当前时刻,跳转步骤S102;否则跳转步骤S108;
S108,判断若当前时间、已消费数据最近时间Latest_Time之差大于预设上限值是否成立,若当前时间、已消费数据最近时间Latest_Time之差大于预设上限值成立,则判定服务端进行数据消费的速度落后于监控主机上报监控数据的速度并增加期望消费数Len_Expect;更新时间戳Adjust_Time为当前时刻,跳转步骤S102;否则跳转步骤S109;
S109,判断若当前时间、已消费数据最近时间Latest_Time之差小于预设下限值是否成立,若当前时间、已消费数据最近时间Latest_Time之差小于预设下限值成立,则判定服务端进行数据消费的速度超过于监控主机上报监控数据的速度并减少期望消费数Len_Expect;更新时间戳Adjust_Time为当前时刻,跳转步骤S102。
步骤S107至步骤S109的判断依次互斥执行,执行后记录本次调整时间戳(更新时间戳Adjust_Time为当前时刻),并对调整后的期望消费数Len_Expect进行校验,防止出现因特殊情况导致小于0或远大于系统可承载数据量的情况,最终重新进入步骤S102的数据处理循环。
通过图4可知,应用本实施例的方法之后,数据处理波动逐渐平缓,监控数据的处理会较为平缓地提升或降低处理速度,并保证监控数据不会有过多积压,大大降低了监控数据处理服务端的瞬时最高处理数据量,即最高负载,相比图1显著克服了数据处理波动较大的问题。
本实施例还提出一种动态调整监控数据处理速度的系统,包括相互连接的微处理器和存储器,所述微处理器被编程或配置以执行本实施例所述动态调整监控数据处理速度的方法。
本实施例还提出一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序用于被微处理器编程或配置以执行本实施例所述动态调整监控数据处理速度的方法。
实施例二
本实施例基于实施例一提出了一种动态调整监控数据处理速度的系统,如图2所示,包括:消息队列、消息队列消费者模块、服务初始化模块、数据循环消费模块、期望消费数动态调整模块。
图2中方框S201指代消息队列,可为Rabbitmq或Nats等消息队列中间件,主要用于临时存储由客户端(被监控主机)推送的监控数据并接受消息队列消费者模块调用提供一定量的监控数据,数据以先进先出方式写入和读取,其可容纳的缓存数据总量根据业务实际情况配置;
图2中方框S202指代消息队列消费者模块,用于向指定的消息队列建立消费者连接,通过指定的消费数(即期望消费数Len_Expect)向消息队列发起消费请求并进行数据消费,并处理当消费队列因数据量不足阻塞时的中断逻辑;具体的,若消息队列返回了期望消费数Len_Expect指定的消费数的数据后,则直接返回到调用方(数据循环消费模块),若消息队列由于未消费数据量小于期望消费数Len_Expect指定的消费数而阻塞超过100毫秒,则将目前已获取到的所有数据返回给调用方;
图2中方框S203指代期望消费数动态调整模块,用于定时动态调整期望消费数Len_Expect,根据近似平均消费数Len_AVG和已消费数据最近时间Latest_Time对期望消费数Len_Expect进行动态调整以供数据循环消费模块使用;具体的,根据期望消费数Len_Expect与近似平均消费数Len_AVG的差值和当前时间Now与已消费数据最近时间Latest_Time的差值来增大或减小期望消费数Len_Expect,并更新时间戳Adjust_Time;此外调整后的期望消费数Len_Expect会在确定后进行一次校验,其值应不小于0且不大于系统承载上限,该上限由具体业务确定,若超出限定返回,则将期望消费数Len_Expect调整至初始化默认值;
图2中方框S204指代数据循环消费模块,用于定时调用消息队列消费者模块向消息队列请求指定期望消费数Len_Expect的监控数据,将监控数据进行持久化存储,计算每次循环中的数据并更新实际消费数Len_Actual、实际消费数Len_Actual的实际近似平均消费数Len_AVG、以及已消费数据最近时间Latest_Time;
图2中方框S205指代服务初始化模块,用于初始化变量,该模块仅在服务运行开始时执行,初始化变量Len_Actual(实际消费数Len_Actual)和Len_Expect(期望消费数Len_Expect)为X(自定义的初始值),变量Len_AVG(实际近似平均消费数Len_AVG)为0,时间戳Latest_Time(已消费数据最近时间Latest_Time)为0,时间戳Adjust_Time(期望消费数调整时间戳Adjust_Time)为当前时间;
图2中方框S206指代监控数据存储数据库,在数据循环消费模块进行监控数据持久化存储时使用。
本实施例的系统运行时数据流向如图3所示,具体情况如下:
首先由S205指代的服务初始化模块进行变量初始化,设置变量Len_Actual(实际消费数Len_Actual)和Len_Expect(期望消费数Len_Expect)为X(自定义的初始值),变量Len_AVG(实际近似平均消费数Len_AVG)为0,时间戳Latest_Time(已消费数据最近时间Latest_Time)为0,时间戳Adjust_Time(期望消费数调整时间戳Adjust_Time)为当前时间;
上述变量后续会由S203指代的期望消费数动态调整模块、S204指代的数据循环消费模块、S202指代的消息队列消费者模块共同使用。
与此同时,S207指代的被监控主机组会不定时、不定量地作为生产者推送监控数据至S201指代的消息队列。
S201指代的消息队列以先进先出方式接收被监控主机连接写入监控数据并暂时存储以及接受监控数据消费者(消息队列消费者模块)连接提供监控数据,其可容纳的缓存数据总量根据业务实际情况配置。
在S202指代的消息队列的消费者模块侧:
S202指代的消息队列消费者模块作为消费者,通过期望消费数Len_Expect指定的消费数直接向消息队列发起消费请求,处理与消息队列间的所有通信事宜,若消息队列返回了期望消费数Len_Expect指定的消费数的数据后,则直接返回到调用方(数据循环消费模块),若消息队列由于未消费数据量小于期望消费数Len_Expect指定的消费数而阻塞超过100毫秒,则将目前已获取到的所有数据返回给调用方。
S204指代的数据循环消费模块会每300毫秒调用一次S202指代的消息队列消费者模块,向消息队列消费者模块传入由期望消费数动态调整模块计算得出的期望消费数Len_Expect并获取相应或小于该消费数的监控数据,然后将监控数据写入到S206指代的数据库进行持久化存储,并且它在每次循环中会计算本次循环的监控数据并更新实际消费数Len_Actual、实际近似平均消费数Len_AVG、已消费数据最近时间Latest_Time以供S203指代的期望消费数动态调整模块使用。
S203指代的期望消费数动态调整模块会根据S204指代的数据循环消费模块提供的实际消费数Len_Actual、实际近似平均消费数Len_AVG、已消费数据最近时间Latest_Time进行运算,以每隔15秒的周期动态调整期望消费数Len_Expect,具体的,根据期望消费数Len_Expect与实际近似平均消费数Len_AVG的差值和当前时间Now与已消费数据最近时间Latest_Time的差值来增大或减小期望消费数Len_Expect,并更新时间戳Adjust_Time;此外调整后的期望消费数Len_Expect会在确定后进行一次校验,其值应不小于0且不大于系统承载上限,该上限由具体业务确定,若超出限定返回,则将期望消费数Len_Expect调整至初始化默认值。
综上所述,本发明在消息队列的基础上,通过监控数据的期望消费数Len_Expect、实际消费数Len_Actual、实际近似平均消费数Len_AVG与已消费数据最近时间Latest_Time的综合计算,实现对积压数据量的整体把控以及期望消费数Len_Expect的动态调整,在数据量高时稍提升期望消费数Len_Expect,在数据量低时稍降低期望消费数Len_Expect,从而保证在无人干预的情况下,随着不断地运行和调整,最终得以相对平稳的消费速度进行监控数据消费,又不会造成数据大量积压或过快消费,在时间线上合理利用系统资源,减少资源使用成本,防止资源浪费。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可读存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种动态调整监控数据处理速度的方法,其特征在于,包括:
S1,把被监控主机上报上来的监控数据指标暂时缓存到消息队列中以将被监控主机和服务端的数据消费逻辑解耦;
S2,通过服务端定时按照期望消费数Len_Expect从消息队列中取出不多于期望消费数Len_Expect的监控数据进行数据消费,再通过动态调整期望消费数Len_Expect以使得服务端进行数据消费的速度与监控主机上报监控数据的速度正相关。
2.根据权利要求1所述的动态调整监控数据处理速度的方法,其特征在于,步骤S2中动态调整期望消费数Len_Expect时,还包括根据服务端取出的监控数据记录计算实际近似平均消费数Len_AVG,若Len_Expect>A×Len_AVG成立,则判定服务端进行数据消费的速度超过监控主机上报监控数据的速度并减少期望消费数Len_Expect,其中A为大于1的系数。
3. 根据权利要求2所述的动态调整监控数据处理速度的方法,其特征在于,所述计算实际近似平均消费数Len_AVG的函数表达式为:
Len_AVG = (Len_AVG + Len_Actual)/2
上式中,Len_Actual为服务端进行数据消费的实际消费数。
4. 根据权利要求3所述的动态调整监控数据处理速度的方法,其特征在于,所述判定服务端进行数据消费的速度超过监控主机上报监控数据的速度并减少期望消费数Len_Expect时,减少期望消费数Len_Expect的函数表达式为:
Len_Expect= Len_Expect - (Len_Expect - Len_AVG)/2
上式中,Len_AVG为实际近似平均消费数。
5.根据权利要求4所述的动态调整监控数据处理速度的方法,其特征在于,步骤S2中动态调整期望消费数Len_Expect时,还包括根据服务端取出的监控数据记录获取已消费数据最近时间Latest_Time,若当前时间、已消费数据最近时间Latest_Time之差大于预设上限值,则判定服务端进行数据消费的速度落后于监控主机上报监控数据的速度并增加期望消费数Len_Expect;若当前时间、已消费数据最近时间Latest_Time之差小于预设下限值,则判定服务端进行数据消费的速度超过于监控主机上报监控数据的速度并减少期望消费数Len_Expect。
6. 根据权利要求5所述的动态调整监控数据处理速度的方法,其特征在于,所述判定服务端进行数据消费的速度落后于监控主机上报监控数据的速度并增加期望消费数Len_Expect时,增加期望消费数Len_Expect的函数表达式为:
Len_Expect= Len_Expect + (Now - Latest_Time)/B×C
上式中,Now为当前时间,Latest_Time为已消费数据最近时间,B为预设的时间参数,C为调整期望消费数Len_Expect的间隔时间。
7. 根据权利要求6所述的动态调整监控数据处理速度的方法,其特征在于,所述判定服务端进行数据消费的速度超过于监控主机上报监控数据的速度并减少期望消费数Len_Expect时,减少期望消费数Len_Expect的函数表达式为:
Len_Expect= Len_Expect - D
上式中,D为预设的递减参数。
8.根据权利要求1所述的动态调整监控数据处理速度的方法,其特征在于,步骤S2包括:
S101,初始化设置实际消费数Len_Actual、期望消费数Len_Expect、实际近似平均消费数Len_AVG、已消费数据最近时间Latest_Time以及时间戳Adjust_Time,且时间戳Adjust_Time被初始化为当前时刻;
S102,等待一个定时的周期;
S103,通过服务端按照期望消费数Len_Expect从消息队列中取出不多于期望消费数Len_Expect的监控数据进行数据消费,并确定实际消费数Len_Actual;
S104,更新计算实际近似平均消费数Len_AVG;
S105,更新计算已消费数据最近时间Latest_Time;
S106,判断当前时刻、时间戳Adjust_Time之间的时间差大于调整期望消费数Len_Expect的间隔时间C是否成立,若不成立,则跳转步骤S102,否则跳转步骤S107;
S107,判断Len_Expect>A×Len_AVG是否成立,若Len_Expect>A×Len_AVG成立,则判定服务端进行数据消费的速度超过监控主机上报监控数据的速度并减少期望消费数Len_Expect,更新时间戳Adjust_Time为当前时刻,跳转步骤S102;否则跳转步骤S108;
S108,判断若当前时间、已消费数据最近时间Latest_Time之差大于预设上限值是否成立,若当前时间、已消费数据最近时间Latest_Time之差大于预设上限值成立,则判定服务端进行数据消费的速度落后于监控主机上报监控数据的速度并增加期望消费数Len_Expect;更新时间戳Adjust_Time为当前时刻,跳转步骤S102;否则跳转步骤S109;
S109,判断若当前时间、已消费数据最近时间Latest_Time之差小于预设下限值是否成立,若当前时间、已消费数据最近时间Latest_Time之差小于预设下限值成立,则判定服务端进行数据消费的速度超过于监控主机上报监控数据的速度并减少期望消费数Len_Expect;更新时间戳Adjust_Time为当前时刻,跳转步骤S102。
9.一种动态调整监控数据处理速度的系统,包括相互连接的微处理器和存储器,其特征在于,所述微处理器被编程或配置以执行权利要求1~8中任意一项所述动态调整监控数据处理速度的方法。
10.一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其特征在于,所述计算机程序用于被微处理器编程或配置以执行权利要求1~8中任意一项所述动态调整监控数据处理速度的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310250539.1A CN115964254B (zh) | 2023-03-16 | 2023-03-16 | 一种动态调整监控数据处理速度的方法、系统及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310250539.1A CN115964254B (zh) | 2023-03-16 | 2023-03-16 | 一种动态调整监控数据处理速度的方法、系统及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115964254A true CN115964254A (zh) | 2023-04-14 |
CN115964254B CN115964254B (zh) | 2023-06-27 |
Family
ID=85888194
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310250539.1A Active CN115964254B (zh) | 2023-03-16 | 2023-03-16 | 一种动态调整监控数据处理速度的方法、系统及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115964254B (zh) |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0404129A2 (en) * | 1989-06-23 | 1990-12-27 | Hitachi, Ltd. | Load control method and apparatus for computer system |
US20150058561A1 (en) * | 2012-01-31 | 2015-02-26 | International Business Machines Corporation | Increased destaging efficiency for smoothing of destage tasks based on speed of disk drives |
CN107239380A (zh) * | 2017-05-10 | 2017-10-10 | 杭州铭师堂教育科技发展有限公司 | 一种基于zabbix的消息队列监控方法 |
US20180063021A1 (en) * | 2016-08-28 | 2018-03-01 | Vmware, Inc. | Policy-based resource-exchange life-cycle in an automated resource-exchange system |
CN110351203A (zh) * | 2019-07-12 | 2019-10-18 | 苏州亿歌网络科技有限公司 | 一种消息处理方法、装置、系统、服务器及存储介质 |
CN110971430A (zh) * | 2018-09-29 | 2020-04-07 | 北京国双科技有限公司 | 自动化扩容缩容的控制方法、装置、存储介质及处理器 |
CN111045837A (zh) * | 2019-11-26 | 2020-04-21 | 福建天泉教育科技有限公司 | 跨服务消费的方法、存储介质 |
CN111459762A (zh) * | 2020-04-03 | 2020-07-28 | 杭州趣维科技有限公司 | 基于字节码技术和cat的监控和调用链系统及方法 |
CN112612607A (zh) * | 2020-12-16 | 2021-04-06 | 平安消费金融有限公司 | 基于消息队列的数据处理方法、装置、计算机设备和介质 |
CN113326150A (zh) * | 2021-05-31 | 2021-08-31 | 中国工商银行股份有限公司 | 一种联机小批量消息处理方法和装置 |
CN113835905A (zh) * | 2021-09-28 | 2021-12-24 | 北京奇艺世纪科技有限公司 | 一种消息队列负载均衡方法、装置、电子设备及介质 |
CN114637615A (zh) * | 2022-03-31 | 2022-06-17 | 挂号网(杭州)科技有限公司 | 消息队列的消息处理方法、装置、电子设备及介质 |
-
2023
- 2023-03-16 CN CN202310250539.1A patent/CN115964254B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0404129A2 (en) * | 1989-06-23 | 1990-12-27 | Hitachi, Ltd. | Load control method and apparatus for computer system |
US20150058561A1 (en) * | 2012-01-31 | 2015-02-26 | International Business Machines Corporation | Increased destaging efficiency for smoothing of destage tasks based on speed of disk drives |
US20180063021A1 (en) * | 2016-08-28 | 2018-03-01 | Vmware, Inc. | Policy-based resource-exchange life-cycle in an automated resource-exchange system |
CN107239380A (zh) * | 2017-05-10 | 2017-10-10 | 杭州铭师堂教育科技发展有限公司 | 一种基于zabbix的消息队列监控方法 |
CN110971430A (zh) * | 2018-09-29 | 2020-04-07 | 北京国双科技有限公司 | 自动化扩容缩容的控制方法、装置、存储介质及处理器 |
CN110351203A (zh) * | 2019-07-12 | 2019-10-18 | 苏州亿歌网络科技有限公司 | 一种消息处理方法、装置、系统、服务器及存储介质 |
CN111045837A (zh) * | 2019-11-26 | 2020-04-21 | 福建天泉教育科技有限公司 | 跨服务消费的方法、存储介质 |
CN111459762A (zh) * | 2020-04-03 | 2020-07-28 | 杭州趣维科技有限公司 | 基于字节码技术和cat的监控和调用链系统及方法 |
CN112612607A (zh) * | 2020-12-16 | 2021-04-06 | 平安消费金融有限公司 | 基于消息队列的数据处理方法、装置、计算机设备和介质 |
CN113326150A (zh) * | 2021-05-31 | 2021-08-31 | 中国工商银行股份有限公司 | 一种联机小批量消息处理方法和装置 |
CN113835905A (zh) * | 2021-09-28 | 2021-12-24 | 北京奇艺世纪科技有限公司 | 一种消息队列负载均衡方法、装置、电子设备及介质 |
CN114637615A (zh) * | 2022-03-31 | 2022-06-17 | 挂号网(杭州)科技有限公司 | 消息队列的消息处理方法、装置、电子设备及介质 |
Non-Patent Citations (2)
Title |
---|
刘峰 等: "基于海量数据的消息队列的性能对比与优化方案", 软件, vol. 37, no. 10, pages 33 - 37 * |
杨超 等: "基于消息队列的多进程数据处理系统", 计算机工程与设计, pages 3128 - 3110 * |
Also Published As
Publication number | Publication date |
---|---|
CN115964254B (zh) | 2023-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7882160B2 (en) | Low latency optimization for generational garbage collection | |
WO2021233261A1 (zh) | 一种多任务动态资源调度方法 | |
CN108509323A (zh) | 基于日志分析的业务处理方法、装置及计算机设备 | |
CN111245732A (zh) | 一种流量控制方法、装置及设备 | |
CN113326170B (zh) | 任务延迟风险检测方法、电子设备及存储介质 | |
CN115964254A (zh) | 一种动态调整监控数据处理速度的方法、系统及介质 | |
CN114745334A (zh) | 一种分布式系统限流方法及系统 | |
CN1988684B (zh) | 网络进程管理方法及装置 | |
CN111782378B (zh) | 自适应性的处理性能调整方法、服务器及可读存储介质 | |
CN111309442B (zh) | 微服务容器数量的调整方法、装置、系统、介质及设备 | |
CN113329345A (zh) | 一种提高短信发送成功率的方法和装置 | |
CN115914119A (zh) | 一种文件下载限流方法及装置 | |
CN110489444B (zh) | 一种异步查询方法、装置、计算机设备及存储介质 | |
CN108628551A (zh) | 一种数据处理方法及装置 | |
CN112069025B (zh) | 锁过期事件的处理方法及装置 | |
CN111190728B (zh) | 资源调整方法及装置 | |
CN112230964A (zh) | 应用程序开发、应用程序运行方法、装置、设备及介质 | |
CN110569259A (zh) | 一种大批量数据的处理方法及装置 | |
CN115543450B (zh) | 边缘场景中资源优化的无服务器计算动态休眠方法及应用 | |
US12032429B2 (en) | Application program freezing control method and apparatus, terminal, and readable storage medium | |
CN118170809A (zh) | 一种读取缓存数据的方法及终端 | |
CN116033483A (zh) | 防拥塞远程升级方法、装置、计算机设备及存储介质 | |
CN118101480A (zh) | 自适应中断聚合装置 | |
CN115002225A (zh) | 一种请求处理方法、装置及可读介质 | |
CN115865821A (zh) | 通量控制方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |