一种服务器业务指标的实时监视方法、装置及电子设备制造方法及图纸

技术编号:19691540 阅读:26 留言:0更新日期:2018-12-08 11:06
本发明专利技术的实施例公开一种服务器业务指标的实时监视方法、装置及电子设备,涉及互联网服务器开发领域,能够解决在线程竞争激烈的情况下,采用加锁的方式获取服务器程序内部的各种指标导致性能损失,成本提高的问题。所述方法包括通过各业务线程生成对应于各自的监控指标更新请求的更新指令;通过各业务线程将各自生成的更新指令写入预先建立的更新队列中;所述业务线程通过所述更新队列与预先建立的单一更新线程通信。本发明专利技术适用于在多线程,不加锁的条件下,得到一个精确指标,实现高性能监控。

【技术实现步骤摘要】
一种服务器业务指标的实时监视方法、装置及电子设备
本专利技术涉及互联网服务器开发领域,尤其涉及一种服务器业务指标的实时监视方法、装置及电子设备。
技术介绍
互联网服务器一般都是7*24小时提供服务,其稳定性非常重要,通常会对服务器程序内部的各种指标进行监控,比如请求数、响应时间、返回数据数等。监控的目的是为了及时发现问题,给出有效的解决方法,保障服务的稳定运行。在单线程服务器中,输出这些指标是很简单的,但单线程不能有效的利用CPU,处理能力低下。多线程处理是目前的服务器程序的通用架构,但多线程下会导致不同的线程存在竞争关系,导致统计的指标不准确。某些情况下,竞争不激烈的条件下,是可以得到一个大概的数据指标的,也能反映当前服务器的一些情况。但竞争激烈的情况下,指标无法反映一个真实的情况。通常的做法是采用加锁的方式解决竞争导致的数据不准确问题,但加锁会带来性能的损失,带来成本的提高。
技术实现思路
有鉴于此,本专利技术实施例提供一种服务器业务指标的实时监视方法、装置及电子设备,用于解决在线程竞争激烈的情况下,采用加锁的方式获取服务器程序内部的各种指标导致性能损失,成本提高的问题。第一方面,本专利技术实施例提供一种服务器业务指标的实时监视方法,包括:通过各业务线程生成对应于各自的监控指标更新请求的更新指令;其中,所述更新指令包括目标监控指标及更新方法;通过各业务线程将各自生成的更新指令写入预先建立的更新队列中;所述业务线程通过所述更新队列与预先建立的单一更新线程通信;启动所述更新线程从所述更新队列中读取更新指令,进行相应监控指标的更新。结合第一方面,在第一方面的第一种实施方式中,所述通过各业务线程将各自生成的更新指令写入预先建立的更新队列中,包括:通过各业务线程同时读取所述更新队列的队尾值,并使各业务线程将本次读取的队尾值各自记为第一队尾值;通过各业务线程尝试再次读取所述更新队列的队尾值,并使本次唯一读取到所述更新队列的队尾值的业务线程将本次读取的队尾值记为第二队尾值;判断本次记录所述第二队尾值的业务线程记录的所述第二队尾值是否等于第一队尾值;若第二队尾值等于第一队尾值,则通过本次记录所述第二队尾值的业务线程将所述更新指令写入所述更新队列的队尾并使队尾值增1;其中,所述通过各业务线程尝试再次读取所述更新队列的队尾值,并使本次唯一读取到所述更新队列的队尾值的业务线程将本次读取的队尾值记为第二队尾值,并判断所述第二队尾值是否等于第一队尾值,随后根据判断结果将本次记录所述第二队尾值的业务线程生成的更新指令写入所述更新队列的步骤为原子操作。结合第一方面的第一种实施方式,在第一方面的第二种实施方式中,若第二队尾值不等于第一队尾值,则返回执行所述通过各业务线程同时读取所述更新队列的队尾值的步骤。结合第一方面的第一种实施方式,在第一方面的第三种实施方式中,所述更新队列为顺序队列或循环队列。结合第一方面、第一方面的第一种实施方式、第一方面的第二种实施方式或第一方面的第三种实施方式,在第一方面的第四种实施方式中,所述启动所述更新线程从所述更新队列中读取更新指令,进行相应监控指标的更新,包括:启动所述更新线程从所述更新队列的队头中读取更新指令;通过所述更新线程按照本次读取的更新指令中的更新方法更新本次读取的更新指令中指定的目标监控指标。第二方面,本专利技术实施例提供一种服务器业务指标的实时监视装置,包括:更新指令生成模块,用于通过各业务线程生成对应于各自的监控指标更新请求的更新指令;其中,所述更新指令包括目标监控指标及更新方法;写入模块,用于通过各业务线程将各自生成的更新指令写入预先建立的更新队列中;所述业务线程通过所述更新队列与预先建立的单一更新线程通信;更新模块,用于启动所述更新线程从所述更新队列中读取更新指令,进行相应监控指标的更新。结合第二方面,在第二方面的第一种实施方式中,所述写入模块,包括:第一读取子模块,用于通过各业务线程同时读取所述更新队列的队尾值,并使各业务线程将本次读取的队尾值各自记为第一队尾值;第二读取子模块,用于在第一读取子模块读取完后,通过各业务线程尝试再次读取所述更新队列的队尾值,并使本次唯一读取到所述更新队列的队尾值的业务线程将本次读取的队尾值记为第二队尾值;判断子模块,用于判断本次记录所述第二队尾值的业务线程记录的所述第二队尾值是否等于所述第一队尾值;写入子模块,用于在所述判断子模块的判断结果为是时,通过本次记录所述第二队尾值的业务线程将其生成的更新指令写入所述更新队列的队尾并使队尾值增1;其中,所述第二读取子模块、判断子模块和写入子模块共同实现将所述更新指令写入更新队列的原子操作。结合第二方面的第一种实施方式,在第二方面的第二种实施方式中,所述第一读取子模块,还用于在所述判断子模块的判断结果为否时,重新通过各业务线程同时读取所述更新队列的队尾值,并使各业务线程将本次读取的队尾值各自记为第一队尾值。结合第二方面、第二方面的第一种实施方式或第二方面的第二种实施方式,在第二方面的第三种实施方式中,所述更新模块,包括:启动子模块,用于启动所述更新线程从所述更新队列的队头中读取更新指令;执行子模块,用于通过所述更新线程按照本次读取的更新指令中的更新方法更新本次读取的更新指令中指定的目标监控指标。第三方面,本专利技术实施例提供一种电子设备,包括:壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为上述客户端的各个电路或器件供电;存储器用于存储可执行程序代码;处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行任一实施例所述的服务器业务指标的实时监视方法。第四方面,本专利技术实施例提供一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有多条指令,所述指令适于由处理器加载并执行任一实施例所述的服务器业务指标的实时监视方法。本专利技术实施例提供的一种服务器业务指标的实时监视方法及装置,通过预先通过更新队列与业务线程通信的更新线程,多个业务线程将更新指令写入更新队列,随后启动更新线程读取所述更新队列中的更新指令并对相应监控指标进行更新。本专利技术将指标的更新分解为提交指令,执行指令两个操作,执行更新的操作在单线程中运行,不会存在竞争的问题,避免了加锁带来的开销,显著提升服务器性能,节省了成本。本专利技术可以在多线程,不加锁的条件下,得到一个精确指标,实现高性能监控,输出的指标参数是真实准确的,可以实时真实的反映服务器内部运行状态,以便及时发现问题并做出处理,保证服务器的稳定性。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。图1为本专利技术的一种服务器业务指标的实时监视方法实施例一的流程图;图2为本专利技术的一种服务器业务指标的实时监视方法实施例二的流程图;图3为业务线程往更新队列中写入更新指令的示意图;图4为更新线程从更新队列中取出更新指令的示意图图5为本专利技术的一种服务器业务指标的实时监视装置实施例一的结构示意图;图6本文档来自技高网...

【技术保护点】
1.一种服务器业务指标的实时监视方法,其特征在于,包括:通过各业务线程生成对应于各自的监控指标更新请求的更新指令;其中,所述更新指令包括目标监控指标及更新方法;通过各业务线程将各自生成的更新指令写入预先建立的更新队列中;所述业务线程通过所述更新队列与预先建立的单一更新线程通信;启动所述更新线程从所述更新队列中读取更新指令,进行相应监控指标的更新。

【技术特征摘要】
1.一种服务器业务指标的实时监视方法,其特征在于,包括:通过各业务线程生成对应于各自的监控指标更新请求的更新指令;其中,所述更新指令包括目标监控指标及更新方法;通过各业务线程将各自生成的更新指令写入预先建立的更新队列中;所述业务线程通过所述更新队列与预先建立的单一更新线程通信;启动所述更新线程从所述更新队列中读取更新指令,进行相应监控指标的更新。2.根据权利要求1所述的一种服务器业务指标的实时监视方法,其特征在于,所述通过各业务线程将各自生成的更新指令写入预先建立的更新队列中,包括:通过各业务线程同时读取所述更新队列的队尾值,并使各业务线程将本次读取的队尾值各自记为第一队尾值;通过各业务线程尝试再次读取所述更新队列的队尾值,并使本次唯一读取到所述更新队列的队尾值的业务线程将本次读取的队尾值记为第二队尾值;判断本次记录所述第二队尾值的业务线程记录的所述第二队尾值是否等于第一队尾值;若第二队尾值等于第一队尾值,则通过本次记录所述第二队尾值的业务线程将其生成的更新指令写入所述更新队列的队尾并使队尾值增1;其中,所述通过各业务线程尝试再次读取所述更新队列的队尾值,并使本次唯一读取到所述更新队列的队尾值的业务线程将本次读取的队尾值记为第二队尾值,并判断所述第二队尾值是否等于第一队尾值,随后根据判断结果将本次记录所述第二队尾值的业务线程生成的更新指令写入所述更新队列的步骤为原子操作。3.根据权利要求2所述的一种服务器业务指标的实时监视方法,其特征在于,若第二队尾值不等于第一队尾值,则返回执行所述通过各业务线程同时读取所述更新队列的队尾值的步骤。4.根据权利要求2所述的一种服务器业务指标的实时监视方法,其特征在于,所述更新队列为顺序队列或循环队列。5.根据权利要求1-4任一项所述的一种服务器业务指标的实时监视方法,其特征在于,所述启动所述更新线程从所述更新队列中读取更新指令,进行相应监控指标的更新,包括:启动所述更新线程从所述更新队列的队头中读取更新指令;通过所述更新线程按照本次读取的更新指令中的更新方法更新本次读取的更新指令中指定的目标监控指标。6.一种服务器业务指标的实时监视装置,其特征在于,包括:更新指令生成模块,用于通过各业务线程生成对应于各自的监控指标更新...

【专利技术属性】
技术研发人员:沈晔
申请(专利权)人:北京金山安全软件有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1