CN117591346A - 日志限流值的确定方法及装置、存储介质及电子装置 - Google Patents

日志限流值的确定方法及装置、存储介质及电子装置 Download PDF

Info

Publication number
CN117591346A
CN117591346A CN202311505875.2A CN202311505875A CN117591346A CN 117591346 A CN117591346 A CN 117591346A CN 202311505875 A CN202311505875 A CN 202311505875A CN 117591346 A CN117591346 A CN 117591346A
Authority
CN
China
Prior art keywords
log
determining
target program
time period
memory size
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.)
Pending
Application number
CN202311505875.2A
Other languages
English (en)
Inventor
杨瑶瑶
刘刚
尹德帅
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qingdao Haier Technology Co Ltd
Haier Smart Home Co Ltd
Haier Uplus Intelligent Technology Beijing Co Ltd
Original Assignee
Qingdao Haier Technology Co Ltd
Haier Smart Home Co Ltd
Haier Uplus Intelligent Technology Beijing Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Qingdao Haier Technology Co Ltd, Haier Smart Home Co Ltd, Haier Uplus Intelligent Technology Beijing Co Ltd filed Critical Qingdao Haier Technology Co Ltd
Priority to CN202311505875.2A priority Critical patent/CN117591346A/zh
Publication of CN117591346A publication Critical patent/CN117591346A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本申请公开了一种日志限流值的确定方法及装置、存储介质及电子装置,涉及智慧家庭技术领域,该日志限流值的确定方法包括:确定目标程序在第一时间段内的日志冗余量,以及所述目标程序在所述第一时间段内处理日志所使用的内存大小,其中,所述日志冗余量为所述目标程序未处理的日志量;根据所述日志冗余量和所述内存大小确定所述目标程序在第二时间段的日志限流值,其中,所述日志限流值为允许对所述目标程序生成的日志进行处理的最大日志数量,其中,所述第一时间段在所述第二时间段之前,所述第一时间段和所述第二时间段对应的时长相同。解决了相关技术中无法动态限制输入到程序中进行处理的日志数量的问题。

Description

日志限流值的确定方法及装置、存储介质及电子装置
技术领域
本申请涉及智慧家庭技术领域,具体而言,涉及一种日志限流值的确定方法及装置、存储介质及电子装置。
背景技术
随着程序的迭代,程序关键日志对于解决问题越来越重要,关键日志生成量也越来越大。但程序相关系统针对程序的处理能力与内存能力是有限的,当处理量超过处理能力时,通常会引起排队积压,造成响应时间迅速变长,进而造成卡顿;而未处理的日志数据积压会造成内存上涨,当内存上涨达到一定量,又反作用造成中央处理器(CentralProcessing Unit,简称CPU)处理能力下降。如果不加以限制,容易造成整个程序相关系统的宕机。因此,为了保证程序相关的系统在遭遇突发流量时,能够正常运行,需要对输入到程序进行处理的日志进行动态限流,让系统在提供最大处理能力的同时,保持健壮,不被压垮。
针对相关技术中,无法动态限制输入到程序中进行处理的日志数量等问题,尚未提出有效的解决方案。
因此,有必要对相关技术予以改良以克服相关技术中的所述缺陷。
发明内容
本申请实施例提供了一种日志限流值的确定方法及装置、存储介质及电子装置,以至少解决相关技术中无法动态限制输入到程序中进行处理的日志数量的问题。
根据本申请实施例的一方面,提供一种日志限流值的确定方法,包括:确定目标程序在第一时间段内的日志冗余量,以及所述目标程序在所述第一时间段内处理日志所使用的内存大小,其中,所述日志冗余量为所述目标程序未处理的日志量;根据所述日志冗余量和所述内存大小确定所述目标程序在第二时间段的日志限流值,其中,所述日志限流值为允许对所述目标程序生成的日志进行处理的最大日志数量。
在一个示例性的实施例中,确定目标程序在第一时间段内的日志冗余量,包括:确定所述目标程序在所述第一时间段内的日志输入量和日志处理量,其中,所述日志输入量为所述目标程序生成的日志数量,所述日志处理量为所述目标程序实际处理的日志数量;将所述日志输入量和所述日志处理量的差值确定为所述日志冗余量。
在一个示例性的实施例中,确定所述目标程序在所述第一时间段内处理日志所使用的内存大小,包括:获取所述目标程序在所述第一时间段内的可用内存大小,以及所述可用内存大小对应的第一权重;确定所述可用内存大小与所述第一权重的乘积;确定所述目标程序处理所述日志冗余量的预计内存大小;将所述可用内存大小与所述乘积的比值确定为所述目标程序在所述第一时间段内处理日志所使用的内存大小。
在一个示例性的实施例中,确定所述目标程序在所述第一时间段内处理日志所使用的内存大小,包括:获取所述目标程序在所述第一时间段内的处理器的使用率;确定所述目标程序在所述第一时间段内的可用内存比,其中,所述可用内存比为所述目标程序的可用内存大小与总可用内存的比例;根据所述使用率和所述可用内存比确定所述目标程序在所述第一时间段内处理日志所使用的内存大小。
在一个示例性的实施例中,根据所述使用率和所述可用内存比确定所述目标程序在所述第一时间段内处理日志所使用的内存大小,包括:确定所述使用率对应的第二权重;根据所述可用内存比确定已用内存比,并确定所述已用内存比对应的第三权重;将所述使用率与第二权重的乘积和所述已用内存比与第三权重的乘积之和确定为所述目标程序在所述第一时间段内处理日志所使用的内存大小。
在一个示例性的实施例中,根据所述日志冗余量和所述内存大小确定所述目标程序在第二时间段的日志限流值,包括:确定所述内存大小对应的第一阈值,其中,所述第一阈值为所述目标程序的内存积压临界值;确定所述第一时间段的日志限流值;在所述内存大小大于等于第一阈值的情况下,根据所述内存大小确定所述第一时间段的日志限流值对应的第一调整比例;根据所述第一时间段的日志限流值和所述第一调整比例确定所述第二时间段的日志限流值。
在一个示例性的实施例中,确定所述第一时间段的日志限流值之后,所述方法还包括:在所述内存大小小于所述第一阈值的情况下,根据所述内存大小确定所述日志冗余量对应的第二调整比例;根据所述第一时间段的日志限流值,所述日志冗余量和所述第二调整比例确定所述第二时间段的日志限流值。
根据本申请实施例的另一方面,还提供了一种日志限流值的确定装置,包括:第一确定模块,用于确定目标程序在第一时间段内的日志冗余量,以及所述目标程序在所述第一时间段内处理日志所使用的内存大小,其中,所述日志冗余量为所述目标程序未处理的日志量;第二确定模块,用于根据所述日志冗余量和所述内存大小确定所述目标程序在第二时间段的日志限流值,其中,所述日志限流值为允许对所述目标程序生成的日志进行处理的最大日志数量。
根据本申请实施例的又一方面,还提供了一种计算机可读的存储介质,该计算机可读的存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述日志限流值的确定方法。
根据本申请实施例的又一方面,还提供了一种电子装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,上述处理器通过计算机程序执行上述日志限流值的确定方法。
通过本申请,通过确定目标程序在第一时间段内的日志冗余量和所述目标程序在所述第一时间段内处理日志所使用的内存大小,其中,所述日志冗余量为所述目标程序未处理的日志量;进而可以根据所述日志冗余量和所述内存大小确定所述目标程序在第二时间段的日志限流值,其中,所述日志限流值为允许对所述目标程序生成的日志进行处理的最大日志数量,其中,所述第一时间段在所述第二时间段之前,所述第一时间段和所述第二时间段对应的时长相同。也就是说,在确定了目标程序在第一时间段内的日志冗余量和所使用的内存大小的情况下,可以根据日志冗余量和所述内存大小确定第一时间段之后的第二时间段内,允许对所述目标程序生成的日志进行处理的日志数量,采用上述技术方案,解决了相关技术中无法动态限制输入到程序中进行处理的日志数量的问题;实现了动态限制输入到目标程序进行处理的日志数量的效果,提高了目标程序的稳定性。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是根据本申请实施例的一种可选的日志限流值的确定方法的硬件环境示意图;
图2是根据本申请实施例的一种可选的日志限流值的确定方法的流程图;
图3是根据本申请实施例的一种可选的确定日志冗余量的流程示意图;
图4是根据本申请实施例的一种可选的日志限流值的确定方法的系统阈值调整示意图;
图5是根据本申请实施例的一种可选的日志限流值的确定装置的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
根据本申请实施例的一个方面,提供了一种日志限流值的确定方法。该日志限流值的确定方法广泛应用于智慧家庭(Smart Home)、智能家居、智能家用设备生态、智慧住宅(IntelligenceHouse)生态等全屋智能数字化控制应用场景。可选地,在本实施例中,上述日志限流值的确定方法可以应用于如图1所示的由多个终端设备102和服务器104所构成的硬件环境中。如图1所示,服务器104通过网络与多个终端设备102进行连接,可用于为终端或终端上安装的客户端提供服务(如应用服务等),可在服务器上或独立于服务器设置数据库,用于为服务器104提供数据存储服务,可在服务器上或独立于服务器配置云计算和/或边缘计算服务,用于为服务器104提供数据运算服务。
上述网络可以包括但不限于以下至少之一:有线网络,无线网络。上述有线网络可以包括但不限于以下至少之一:广域网,城域网,局域网,上述无线网络可以包括但不限于以下至少之一:WIFI(Wireless Fidelity,无线保真),蓝牙。终端设备102可以并不限定于为PC、手机、平板电脑、智能空调、智能烟机、智能冰箱、智能烤箱、智能炉灶、智能洗衣机、智能热水器、智能洗涤设备、智能洗碗机、智能投影设备、智能电视、智能晾衣架、智能窗帘、智能影音、智能插座、智能音响、智能音箱、智能新风设备、智能厨卫设备、智能卫浴设备、智能扫地机器人、智能擦窗机器人、智能拖地机器人、智能空气净化设备、智能蒸箱、智能微波炉、智能厨宝、智能净化器、智能饮水机、智能门锁等。
在本实施例中提供了一种日志限流值的确定方法,包括但不限于应用于计算机终端,图2是根据本申请实施例的一种可选的日志限流值的确定方法的流程图,该流程包括如下步骤:
步骤S202:确定目标程序在第一时间段内的日志冗余量,以及所述目标程序在所述第一时间段内处理日志所使用的内存大小,其中,所述日志冗余量为所述目标程序未处理的日志量;
需要说明的是,所述处理日志,处理的可以是目标程序生成的日志。
步骤S204:根据所述日志冗余量和所述内存大小确定所述目标程序在第二时间段的日志限流值,其中,所述日志限流值为允许对所述目标程序生成的日志进行处理的最大日志数量,其中,所述第一时间段在所述第二时间段之前,所述第一时间段和所述第二时间段对应的时长相同。
通过上述步骤,通过确定目标程序在第一时间段内的日志冗余量和所述目标程序在所述第一时间段内处理日志所使用的内存大小,其中,所述日志冗余量为所述目标程序未处理的日志量;进而可以根据所述日志冗余量和所述内存大小确定所述目标程序在第二时间段的日志限流值,其中,所述日志限流值为允许对所述目标程序生成的日志进行处理的最大日志数量,其中,所述第一时间段在所述第二时间段之前,所述第一时间段和所述第二时间段对应的时长相同。也就是说,在确定了目标程序在第一时间段内的日志冗余量和所使用的内存大小的情况下,可以根据日志冗余量和所述内存大小确定第一时间段之后的第二时间段内,允许对所述目标程序生成的日志进行处理的日志数量,采用上述技术方案,解决了相关技术中无法动态限制输入到程序中进行处理的日志数量的问题;实现了动态限制输入到目标程序进行处理的日志数量的效果,提高了目标程序的稳定性。
在一个示例性的实施例中,如图3所示,确定目标程序在第一时间段内的日志冗余量,包括:
步骤S302:确定所述目标程序在所述第一时间段内的日志输入量和日志处理量,其中,所述日志输入量为所述目标程序生成的日志数量,所述日志处理量为所述目标程序实际处理的日志数量;
步骤S304:将所述日志输入量和所述日志处理量的差值确定为所述日志冗余量。
可以理解的是,可以将第一时间段内目标程序的生成的日志数量和第一时间段内目标程序处理的日志数量的差值确定为目标程序的日志冗余量。如:第一时间段内目标程序生成1000条日志,处理了700条日志,则日志冗余量为1000-700=300条。日志输入量和日志处理量通过累加算法确定的,即目标程序每产生一条日志,日志输入量加1,目标程序每处理一条日志,日志处理量加1。需要说明的是,日志处理量小于等于日志限流值。
关于第一时间段和第二时间段对应的时长的确定:持续不间断的读取CPU和/或内存会浪费所述目标程序的内存,因此可以选择间隔固定的时长读取程序的CPU和/或内存。此外,一般情况下,当程序中待处理的日志量过多,可能5秒就会导致程序崩溃,因此可以选择5秒的一半时长并取整,因此,第一时间段、第二时间段的时长可以为3秒,也即:确定目标程序崩溃的平均时长,将平均时长的一半取整,以得到所述第一时间段和所述第二时间段对应的时长。
在一个示例性的实施例中,确定所述目标程序在所述第一时间段内处理日志所使用的内存大小,包括:获取所述目标程序在所述第一时间段内的可用内存大小,以及所述可用内存大小对应的第一权重;确定所述可用内存大小与所述第一权重的乘积;确定所述目标程序处理所述日志冗余量的预计内存大小;将所述可用内存大小与所述乘积的比值确定为所述目标程序在所述第一时间段内处理日志所使用的内存大小。
可选的,在无法读取到目标程序的处理器的情况下,可以通过如下公式确定所述内存大小:内存大小=(日志输入量-日志处理量)*0.3M/(当前可用内存*第一权重);其中0.3M为处理单条日志占用的程序内存大小,优选的,第一权重可以为80%。
在一个示例性的实施例中,确定所述目标程序在所述第一时间段内处理日志所使用的内存大小,包括:获取所述目标程序在所述第一时间段内的处理器的使用率;确定所述目标程序在所述第一时间段内的可用内存比,其中,所述可用内存比为所述目标程序的可用内存大小与总可用内存的比例;根据所述使用率和所述可用内存比确定所述目标程序在所述第一时间段内处理日志所使用的内存大小。
在一个示例性的实施例中,根据所述使用率和所述可用内存比确定所述目标程序在所述第一时间段内处理日志所使用的内存大小,包括:确定所述使用率对应的第二权重;根据所述可用内存比确定已用内存比,并确定所述已用内存比对应的第三权重;将所述使用率与第二权重的乘积和所述已用内存比与第三权重的乘积之和确定为所述目标程序在所述第一时间段内处理日志所使用的内存大小。
在可以读取到处理器的情况下,通过处理器使用率和已用内存比,以及二者分别对应的权重确定所述内存大小,具体公式为:内存大小=使用率*第二权重+已用内存比*第三权重;优选的,第二权重可以为0.6,第三权重可以为0.8。
需要说明的是,上述内存大小的确定方案中,总内存以100%或者1表示,计算得到的第一时间段内所使用的内存大小最终值为百分数或者小数,如70%或者0.7。还需要说明的是,上述第一权重、第二权重、第三权重可以根据目标程序实际处理日志的情况调整。
在一个示例性的实施例中,根据所述日志冗余量和所述内存大小确定所述目标程序在第二时间段的日志限流值,包括:确定所述内存大小对应的第一阈值,其中,所述第一阈值为所述目标程序的内存积压临界值;确定所述第一时间段的日志限流值;在所述内存大小大于等于第一阈值的情况下,根据所述内存大小确定所述第一时间段的日志限流值对应的第一调整比例;根据所述第一时间段的日志限流值和所述第一调整比例确定所述第二时间段的日志限流值。
需要说明的是,第一时间段内所使用的内存大小超过内存积压临界值的情况下,可能出现待处理日志排队积压的情况,并且可能会导致目标程序的稳定性变差,容易崩溃。还需要说明的是,一般情况下,日志限流值会大于日志冗余量。
因此,在出现第一时间段内处理日志所使用的内存大小超过第一阈值的情况时,可以直接按照一定比例调整第一时间段的日志限流值,并将调整后的第一时间段内的日志限流值确定为第二时间段的日志限流值。优选的,第一阈值可以为0.9,第一调整比例可以为0.7。例如:在第一时间段的日志限流值为1000,并且此时确定目标程序在第一时间段内所使用的内存大小大于等于0.9,则第二时间段的日志限流值为:1000*0.7=700。
通过上述实施例,在大于第一阈值的情况下,直接调整第一时间段的日志限流值,可以快速减轻内存压力,提高目标程序的稳定性。
在一个示例性的实施例中,确定所述第一时间段的日志限流值之后,所述方法还包括:在所述内存大小小于所述第一阈值的情况下,根据所述内存大小确定所述日志冗余量对应的第二调整比例;根据所述第一时间段的日志限流值,所述日志冗余量和所述第二调整比例确定所述第二时间段的日志限流值。
可选的,还可以设置第二阈值、第三阈值,其中,第二阈值为内存稳定阈值,第三阈值为内存空闲阈值。如果第一时间段内所使用的内存大小在第二阈值和第一阈值之间(包含第二阈值),则当前目标程序的内存状态处于较为稳定的阶段,无需调整,即将第一时间段的日志限流值确定为第二时间段的日志限流值;如果所述内存大小小于第二阈值,则需要进一步结合日志冗余量判定是否需要调整第二时间段的日志限流值:如果日志冗余量小于日志冗余量阈值,则无需调整第二时间段的日志限流值,如果日志冗余量大于等于日志冗余量阈值,则可以适当提高日志限流值。但为使得目标程序稳定,可以采用:第一时间段的日志限流值+日志冗余量*第二调整比例的方式。优选的,日志冗余量阈值可以为20。
在所述内存大小小于第二阈值且日志冗余量大于等于日志冗余量阈值的情况下,如果所述内存大小在第二阈值和第三阈值之间,则可以选择较小的第二调整比例,如0.5;如果所述内存大小小于等于第三阈值,则可以选择较大的第二调整比例,如0.7。
可选的,根据所述日志冗余量和所述内存大小确定所述目标程序在第二时间段的日志限流值之后,可以通过重复率算法对所述目标程序生成的日志进行过滤,以得到日志限流值个日志;通过所述目标程序处理所述日志限流值个日志。
显然,上述所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。为了更好的理解上述日志限流值的确定方法,以下结合实施例对上述过程进行说明,但不用于限定本申请实施例的技术方案,具体地:
随着信息技术的发展,越来越多的业务需要程序去记录处理,进而目前大多数程序的日志输出越来越多,越来越大。本申请可选实施例通过控制日志的输出(即控制目标程序处理日志的数量),在保证程序运行正常的情况下进行动态限流操作。需要说明的是,动态限流有可能导致日志的丢失。其中,日志的丢失是指在确定日志限流值之后,采用重复率算法等将目标程序产出的日志进行精简。
需要说明的是,以下阈值、系统阈值相当于上述实施例中的第一时间段内所使用的内存大小。
进一步的,本申请可选实施例可以基于目标程序的CPU与内存的使用情况计算出一个合理的输出阈值(即保证系统稳定输出所使用的内存大小),在保证系统流畅运行的同时对日志进行最大程度的输出。
进一步的,本申请可选实施例提供了就一种动态限流调整方案,包括:
单独开辟线程记录每3秒的阈值和日志冗余,其中,日志冗余=日志输入量-日志处理量,其中,日志冗余相当于上述实施例中的日志冗余量。进而基于每三秒的阈值和日志冗余可以确定日志限流值,包括:
1)当日志冗余>20,且已达到用户设置的maxPerLimit时,不做调整。
需要说明的是,用户可以设置maxPerLimit,即最大日志限流值,maxPerLimit表示用户设定的目标程序最大可以处理的日志量,在存在maxPerLimit的情况下,即使存在日志冗余量,也不需要进一步扩大日志限流值。
2)当日志冗余>20,且阈值<0.7时,提高日志限流值=日志限流值+日志冗余*0.7;
3)当日志冗余>20,且0.7<阈值<0.8时,提高日志限流值=日志限流值+日志冗余*0.5;
4)当日志冗余>20,且0.8<阈值<0.9时,提高日志限流值=日志限流值;
5)当日志冗余>20,且阈值>0.9时,提高日志限流值=日志限流值*0.7;
6)当日志冗余<20,且阈值<0.9时,提高日志限流值=日志限流值;
7)当日志冗余<20,且阈值>0.9时,提高日志限流值=日志限流值*0.7。
图4是根据本申请实施例的一种可选的日志限流值的确定方法的系统阈值调整示意图,如图4所示,简言之,在确保日志输出量不变的情况下,根据第一时间段的系统阈值调节第二时间段的日志限流值的大小,进而使得第二时间段的系统阈值被调节。具体方案包括:方案一:系统阈值初始设定最大值降低调整;方案二:系统阈值初始设定较小值升高调整。
需要说明的是,系统阈值可以初始设定,也可以实时检测当前时间段的系统阈值。
进一步的,以下提供所述阈值的计算方案:
方案一:采用计算单位时间内(可以为每3秒)日志输入量与日志处理量来计算;
计算公式:阈值=(日志输入量-日志处理量)*0.3M/(当前可用内存*80%);
需要说明的是,0.3M为所述目标程序处理单条日志所需要的内存大小估计值。在无法读取目标程序的CPU的情况下,可以基于方案一中的公式确定所述阈值。
方案二:采用计算CPU使用率与可用内存比(当前可用内存与程序总可用内存比例)来计算;
计算公式:阈值=(CPU使用率*0.6+内存使用率*0.8)*100%。需要说明的是,内存使用率相当于上述实施例中的已用内存比。
基于上述方案,以下给出上述本申请可选实施例的具体实施例:
假设3秒日志冗余为100条,当前日志限流值为1000/s,则基于上述方案:
第一次调整:阈值>90%:限流值=1000*0.7=700/s;
需要说明的对第一次调整进行说明的是:目标程序计算出3秒内阈值为大于90%,且3秒内的冗余量100>20,则根据上述的:“5)当日志冗余>20,且阈值>0.9时,提高日志限流值=日志限流值*0.7”可以确定第一次调整对应的下3秒的日志限流值为当前限流值1000*0.7,即700/s,后续调整以此类推。
第二次调整:阈值>90%:限流值=700*0.7=490/s;
第三次调整:80%<阈值<90%:限流值=490/s;
第四次调整:80%<阈值<90%:限流值=490/s;
第五次调整:阈值<70%:限流值=490+100*0.7=560/s;
第六次调整:阈值<7 0%:限流值=560+100*0.7=610/s;(本次冗余依旧为100);
第七次调整:70%<阈值<80%:限流值=610+60*0.5=660/s;(本次冗余依旧为60);
第八次调整:70%<阈值<80%:限流值=660+40*0.5=680/s;(本次冗余依旧为40);
第九次:80%<阈值<90%:限流值=680/s;
需要说明的是,上述冗余值100、60、40均根据公式“日志冗余=日志输入量-日志处理量”确定。100、60、40这三个数值仅用于举例。
综上,通过系统处理能力计算,动态调整处理的日志数量,可以维持程序流畅运行,保护程序高负荷下最优取舍处理数据。
日志是程序异常后最重要的分析资源,程序是处理工作最重要的工具,维持程序安全与日志平衡是最需要保护的工作,本申请可选实施例在日志输出与程序运行之间采取动态算法,确保日志与程序的最优运行。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例的方法。
在本实施例中还提供了一种日志限流值的确定装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的设备较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图5是根据本申请实施例的一种可选的日志限流值的确定装置的结构框图,该装置包括:
第一确定模块52,用于确定目标程序在第一时间段内的日志冗余量,以及所述目标程序在所述第一时间段内处理日志所使用的内存大小,其中,所述日志冗余量为所述目标程序未处理的日志量;
第二确定模块54,用于根据所述日志冗余量和所述内存大小确定所述目标程序在第二时间段的日志限流值,其中,所述日志限流值为允许对所述目标程序生成的日志进行处理的最大日志数量,其中,所述第一时间段在所述第二时间段之前,所述第一时间段和所述第二时间段对应的时长相同。
通过上述装置,通过确定目标程序在第一时间段内的日志冗余量和所述目标程序在所述第一时间段内处理日志所使用的内存大小,其中,所述日志冗余量为所述目标程序未处理的日志量;进而可以根据所述日志冗余量和所述内存大小确定所述目标程序在第二时间段的日志限流值,其中,所述日志限流值为允许对所述目标程序生成的日志进行处理的最大日志数量,其中,所述第一时间段在所述第二时间段之前,所述第一时间段和所述第二时间段对应的时长相同。也就是说,在确定了目标程序在第一时间段内的日志冗余量和所使用的内存大小的情况下,可以根据日志冗余量和所述内存大小确定第一时间段之后的第二时间段内,允许对所述目标程序生成的日志进行处理的日志数量,采用上述技术方案,解决了相关技术中无法动态限制输入到程序中进行处理的日志数量的问题;实现了动态限制输入到目标程序进行处理的日志数量的效果,提高了目标程序的稳定性。
在一个示例性的实施例中,第一确定模块52,还用于确定所述目标程序在所述第一时间段内的日志输入量和日志处理量,其中,所述日志输入量为所述目标程序生成的日志数量,所述日志处理量为所述目标程序实际处理的日志数量;将所述日志输入量和所述日志处理量的差值确定为所述日志冗余量。
可以理解的是,可以将第一时间段内目标程序的生成的日志数量和第一时间段内目标程序处理的日志数量的差值确定为目标程序的日志冗余量。如:第一时间段内目标程序生成1000条日志,处理了700条日志,则日志冗余量为1000-700=300条。日志输入量和日志处理量通过累加算法确定的,即目标程序每产生一条日志,日志输入量加1,目标程序每处理一条日志,日志处理量加1。需要说明的是,日志处理量小于等于日志限流值。
关于第一时间段和第二时间段对应的时长的确定:持续不间断的读取CPU和/或内存会浪费所述目标程序的内存,因此可以选择间隔固定的时长读取程序的CPU和/或内存。此外,一般情况下,当程序中待处理的日志量过多,可能5秒就会导致程序崩溃,因此可以选择5秒的一半时长并取整,因此,第一时间段、第二时间段的时长可以为3秒,也即:确定目标程序崩溃的平均时长,将平均时长的一半取整,以得到所述第一时间段和所述第二时间段对应的时长。
在一个示例性的实施例中,第一确定模块52,还用于获取所述目标程序在所述第一时间段内的可用内存大小,以及所述可用内存大小对应的第一权重;确定所述可用内存大小与所述第一权重的乘积;确定所述目标程序处理所述日志冗余量的预计内存大小;将所述可用内存大小与所述乘积的比值确定为所述目标程序在所述第一时间段内处理日志所使用的内存大小。
可选的,在无法读取到目标程序的处理器的情况下,可以通过如下公式确定所述内存大小:内存大小=(日志输入量-日志处理量)*0.3M/(当前可用内存*第一权重);其中0.3M为处理单条日志占用的程序内存大小,优选的,第一权重可以为80%。
在一个示例性的实施例中,第一确定模块52,还用于获取所述目标程序在所述第一时间段内的处理器的使用率;确定所述目标程序在所述第一时间段内的可用内存比,其中,所述可用内存比为所述目标程序的可用内存大小与总可用内存的比例;根据所述使用率和所述可用内存比确定所述目标程序在所述第一时间段内处理日志所使用的内存大小。
在一个示例性的实施例中,第一确定模块52,还用于确定所述使用率对应的第二权重;根据所述可用内存比确定已用内存比,并确定所述已用内存比对应的第三权重;将所述使用率与第二权重的乘积和所述已用内存比与第三权重的乘积之和确定为所述目标程序在所述第一时间段内处理日志所使用的内存大小。
在可以读取到处理器的情况下,通过处理器使用率和已用内存比,以及二者分别对应的权重确定所述内存大小,具体公式为:内存大小=使用率*第二权重+已用内存比*第三权重;优选的,第二权重可以为0.6,第三权重可以为0.8。
需要说明的是,上述内存大小的确定方案中,总内存以100%或者1表示,计算得到的第一时间段内所使用的内存大小最终值为百分数或者小数,如70%或者0.7。还需要说明的是,上述第一权重、第二权重、第三权重可以根据目标程序实际处理日志的情况调整。
在一个示例性的实施例中,第二确定模块54,还用于确定所述内存大小对应的第一阈值,其中,所述第一阈值为所述目标程序的内存积压临界值;确定所述第一时间段的日志限流值;在所述内存大小大于等于第一阈值的情况下,根据所述内存大小确定所述第一时间段的日志限流值对应的第一调整比例;根据所述第一时间段的日志限流值和所述第一调整比例确定所述第二时间段的日志限流值。
需要说明的是,第一时间段内所使用的内存大小超过内存积压临界值的情况下,可能出现待处理日志排队积压的情况,并且可能会导致目标程序的稳定性变差,容易崩溃。还需要说明的是,一般情况下,日志限流值会大于日志冗余量。
因此,在出现第一时间段内处理日志所使用的内存大小超过第一阈值的情况时,可以直接按照一定比例调整第一时间段的日志限流值,并将调整后的第一时间段内的日志限流值确定为第二时间段的日志限流值。优选的,第一阈值可以为0.9,第一调整比例可以为0.7。例如:在第一时间段的日志限流值为1000,并且此时确定目标程序在第一时间段内所使用的内存大小大于等于0.9,则第二时间段的日志限流值为:1000*0.7=700。
通过上述实施例,在大于第一阈值的情况下,直接调整第一时间段的日志限流值,可以快速减轻内存压力,提高目标程序的稳定性。
在一个示例性的实施例中,第二确定模块54,还用于在所述内存大小小于所述第一阈值的情况下,根据所述内存大小确定所述日志冗余量对应的第二调整比例;根据所述第一时间段的日志限流值,所述日志冗余量和所述第二调整比例确定所述第二时间段的日志限流值。
可选的,还可以设置第二阈值、第三阈值,其中,第二阈值为内存稳定阈值,第三阈值为内存空闲阈值。如果第一时间段内所使用的内存大小在第二阈值和第一阈值之间(包含第二阈值),则当前目标程序的内存状态处于较为稳定的阶段,无需调整,即将第一时间段的日志限流值确定为第二时间段的日志限流值;如果所述内存大小小于第二阈值,则需要进一步结合日志冗余量判定是否需要调整第二时间段的日志限流值:如果日志冗余量小于日志冗余量阈值,则无需调整第二时间段的日志限流值,如果日志冗余量大于等于日志冗余量阈值,则可以适当提高日志限流值。但为使得目标程序稳定,可以采用:第一时间段的日志限流值+日志冗余量*第二调整比例的方式。优选的,日志冗余量阈值可以为20。
在所述内存大小小于第二阈值且日志冗余量大于等于日志冗余量阈值的情况下,如果所述内存大小在第二阈值和第三阈值之间,则可以选择较小的第二调整比例,如0.5;如果所述内存大小小于等于第三阈值,则可以选择较大的第二调整比例,如0.7。
可选的,上述装置还包括过滤模块,用于根据所述日志冗余量和所述内存大小确定所述目标程序在第二时间段的日志限流值之后,可以通过重复率算法对所述目标程序生成的日志进行过滤,以得到日志限流值个日志;通过所述目标程序处理所述日志限流值个日志。
本申请的实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,确定目标程序在第一时间段内的日志冗余量,以及所述目标程序在所述第一时间段内处理日志所使用的内存大小,其中,所述日志冗余量为所述目标程序未处理的日志量;
S2,根据所述日志冗余量和所述内存大小确定所述目标程序在第二时间段的日志限流值,其中,所述日志限流值为允许对所述目标程序生成的日志进行处理的最大日志数量,其中,所述第一时间段在所述第二时间段之前,所述第一时间段和所述第二时间段对应的时长相同。
在一个示例性实施例中,上述计算机可读存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本实施例中的具体示例可以参考上述实施例及示例性实施方式中所描述的示例,本实施例在此不再赘述。
本申请的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,确定目标程序在第一时间段内的日志冗余量,以及所述目标程序在所述第一时间段内处理日志所使用的内存大小,其中,所述日志冗余量为所述目标程序未处理的日志量;
S2,根据所述日志冗余量和所述内存大小确定所述目标程序在第二时间段的日志限流值,其中,所述日志限流值为允许对所述目标程序生成的日志进行处理的最大日志数量,其中,所述第一时间段在所述第二时间段之前,所述第一时间段和所述第二时间段对应的时长相同。
在一个示例性实施例中,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
本实施例中的具体示例可以参考上述实施例及示例性实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本申请的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请不限制于任何特定的硬件和软件结合。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

Claims (10)

1.一种日志限流值的确定方法,其特征在于,包括:
确定目标程序在第一时间段内的日志冗余量,以及所述目标程序在所述第一时间段内处理日志所使用的内存大小,其中,所述日志冗余量为所述目标程序未处理的日志量;
根据所述日志冗余量和所述内存大小确定所述目标程序在第二时间段的日志限流值,其中,所述日志限流值为对所述目标程序生成的日志进行处理的最大日志数量。
2.根据权利要求1所述的日志限流值的确定方法,其特征在于,确定目标程序在第一时间段内的日志冗余量,包括:
确定所述目标程序在所述第一时间段内的日志输入量和日志处理量,其中,所述日志输入量为所述目标程序生成的日志数量,所述日志处理量为所述目标程序实际处理的日志数量;
将所述日志输入量和所述日志处理量的差值确定为所述日志冗余量。
3.根据权利要求1所述的日志限流值的确定方法,其特征在于,确定所述目标程序在所述第一时间段内处理日志所使用的内存大小,包括:
获取所述目标程序在所述第一时间段内的可用内存大小,以及所述可用内存大小对应的第一权重;
确定所述可用内存大小与所述第一权重的乘积;
确定所述目标程序处理所述日志冗余量的预计内存大小;
将所述可用内存大小与所述乘积的比值确定为所述目标程序在所述第一时间段内处理日志所使用的内存大小。
4.根据权利要求1所述的日志限流值的确定方法,其特征在于,确定所述目标程序在所述第一时间段内处理日志所使用的内存大小,包括:
获取所述目标程序在所述第一时间段内的处理器的使用率;
确定所述目标程序在所述第一时间段内的可用内存比,其中,所述可用内存比为所述目标程序的可用内存大小与总可用内存的比例;
根据所述使用率和所述可用内存比确定所述目标程序在所述第一时间段内处理日志所使用的内存大小。
5.根据权利要求4所述的日志限流值的确定方法,其特征在于,根据所述使用率和所述可用内存比确定所述目标程序在所述第一时间段内处理日志所使用的内存大小,包括:
确定所述使用率对应的第二权重;
根据所述可用内存比确定已用内存比,并确定所述已用内存比对应的第三权重;将所述使用率与第二权重的乘积和所述已用内存比与第三权重的乘积之和确定为所述目标程序在所述第一时间段内处理日志所使用的内存大小。
6.根据权利要求1所述的日志限流值的确定方法,其特征在于,根据所述日志冗余量和所述内存大小确定所述目标程序在第二时间段的日志限流值,包括:
确定所述内存大小对应的第一阈值,其中,所述第一阈值为所述目标程序的内存积压临界值;
确定所述第一时间段的日志限流值;
在所述内存大小大于等于第一阈值的情况下,根据所述内存大小确定所述第一时间段的日志限流值对应的第一调整比例;
根据所述第一时间段的日志限流值和所述第一调整比例确定所述第二时间段的日志限流值。
7.根据权利要求6所述的日志限流值的确定方法,其特征在于,确定所述第一时间段的日志限流值之后,所述方法还包括:
在所述内存大小小于所述第一阈值的情况下,根据所述内存大小确定所述日志冗余量对应的第二调整比例;
根据所述第一时间段的日志限流值,所述日志冗余量和所述第二调整比例确定所述第二时间段的日志限流值。
8.一种日志限流值的确定装置,其特征在于,包括:
第一确定模块,用于确定目标程序在第一时间段内的日志冗余量,以及所述目标程序在所述第一时间段内处理日志所使用的内存大小,其中,所述日志冗余量为所述目标程序未处理的日志量;
第二确定模块,用于根据所述日志冗余量和所述内存大小确定所述目标程序在第二时间段的日志限流值,其中,所述日志限流值为允许对所述目标程序生成的日志进行处理的最大日志数量。
9.一种计算机可读的存储介质,其特征在于,所述计算机可读的存储介质包括存储的程序,其中,所述程序运行时执行权利要求1至7中任一项所述的方法。
10.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为通过所述计算机程序执行权利要求1至7中任一项所述的方法。
CN202311505875.2A 2023-11-10 2023-11-10 日志限流值的确定方法及装置、存储介质及电子装置 Pending CN117591346A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311505875.2A CN117591346A (zh) 2023-11-10 2023-11-10 日志限流值的确定方法及装置、存储介质及电子装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311505875.2A CN117591346A (zh) 2023-11-10 2023-11-10 日志限流值的确定方法及装置、存储介质及电子装置

Publications (1)

Publication Number Publication Date
CN117591346A true CN117591346A (zh) 2024-02-23

Family

ID=89912495

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311505875.2A Pending CN117591346A (zh) 2023-11-10 2023-11-10 日志限流值的确定方法及装置、存储介质及电子装置

Country Status (1)

Country Link
CN (1) CN117591346A (zh)

Similar Documents

Publication Publication Date Title
CN108664321B (zh) 系统资源分配调整方法及装置
CN115460153B (zh) 令牌桶容量的动态调整方法和装置、存储介质及电子装置
CN109597800B (zh) 一种日志分发方法及装置
CN117749660A (zh) 智能家电终端的异常检测方法、装置及存储介质
CN117591346A (zh) 日志限流值的确定方法及装置、存储介质及电子装置
CN110736224B (zh) 智能家居设备的控制方法及装置、存储介质及处理器
CN116107975A (zh) 设备的控制方法和装置、存储介质及电子装置
CN114697150B (zh) 命令的下发方法和装置、存储介质及电子装置
CN116225834A (zh) 告警信息的发送方法、装置、存储介质及电子装置
CN115345225A (zh) 推荐场景的确定方法及装置、存储介质及电子装置
CN111308899A (zh) 设备的监控方法、装置、智能设备及存储介质
CN116418613A (zh) 消息的回流处理方法、装置、存储介质及电子装置
CN113992378B (zh) 一种安全监测方法、装置、电子设备及存储介质
CN114840557A (zh) 数据的查询方法和装置、存储介质及电子装置
CN115473753B (zh) 网关设备的控制方法、装置、存储介质及电子装置
CN115378656B (zh) 令牌回填方法、存储介质及电子装置
CN115988152B (zh) 目标烹饪视频的生成方法、装置、存储介质及电子装置
CN115419997B (zh) 提示信息的发送方法及装置、存储介质及电子装置
CN117914788A (zh) 一种针对智能家居设备的消息限流处理方法及装置
CN115312049B (zh) 指令的响应方法、存储介质及电子装置
CN117749843A (zh) 场景的触发方法和装置、存储介质及电子装置
CN115296950B (zh) 设备自清洁的提示方法、存储介质及电子装置
CN116301767A (zh) 接口文件的生成方法、装置、存储介质及电子装置
CN116467070A (zh) 任务处理方法、装置、存储介质及电子装置
CN116521157A (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