CN112286930A - redis业务方资源共享的方法、装置、存储介质及电子设备 - Google Patents

redis业务方资源共享的方法、装置、存储介质及电子设备 Download PDF

Info

Publication number
CN112286930A
CN112286930A CN202011052195.6A CN202011052195A CN112286930A CN 112286930 A CN112286930 A CN 112286930A CN 202011052195 A CN202011052195 A CN 202011052195A CN 112286930 A CN112286930 A CN 112286930A
Authority
CN
China
Prior art keywords
service party
memory
abnormal
memory usage
usage rate
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
CN202011052195.6A
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.)
Beijing Dami Technology Co Ltd
Original Assignee
Beijing Dami Technology 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 Beijing Dami Technology Co Ltd filed Critical Beijing Dami Technology Co Ltd
Priority to CN202011052195.6A priority Critical patent/CN112286930A/zh
Publication of CN112286930A publication Critical patent/CN112286930A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3034Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a storage system, e.g. DASD based or network based
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/32Monitoring with visual or acoustical indication of the functioning of the machine
    • G06F11/324Display of status information
    • G06F11/327Alarm or error message display
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/217Database tuning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory

Abstract

本申请实施例公开了一种实现redis业务方资源共享的方法、装置、存储介质及电子设备,其中,方法包括:监控服务器节点的第一内存使用率,若所述第一内存使用率超过预警阈值,获取访问所述服务器节点上redis资源的各业务方的第二内存使用率,将所述第二内存使用率超过预设限流阈值的业务方确认为异常业务方,对所述异常业务方进行资源限流处理。采用本申请实施例,通过监控和计算业务方的内存使用率,对使用率高的业务方进行限流处理,避免该业务方占用其他业务方的资源并影响其他业务方的正常运行。

Description

redis业务方资源共享的方法、装置、存储介质及电子设备
技术领域
本申请涉及计算机技术领域,尤其涉及一种实现redis业务方资源共享的方法、装置、存储介质及电子设备。
背景技术
redis是一个高性能的key-value数据库,在部分场合可以对关系数据库起到很好的补充作用且使用方便,redis数据库作为缓存和高性能存储方案而应用广泛。当多个业务方分别使用redis时,各自部署redis到不同的服务器,会导致资源的浪费,现在普遍采用混合部署redis以共用服务器的方法来节省服务器资源、降低服务器成本。但是当多业务共用服务器时,若某一个业务的流量激增,该业务会占用其他业务的服务器资源,导致其他业务使用redis时资源不足从而影响其他业务的正常运作。
发明内容
本申请实施例提供了一种实现redis业务方资源共享的方法、装置、存储介质及电子设备,可以通过监控和计算业务方的内存使用率,对使用率高的业务方进行限流处理,避免该业务方占用其他业务方的资源并影响其他业务方的正常运行。所述技术方案如下:
第一方面,本申请实施例提供了一种实现redis业务方资源共享的方法,所述方法包括:
监控服务器节点的第一内存使用率;
若所述第一内存使用率超过预警阈值,获取访问所述服务器节点上redis资源的各业务方的第二内存使用率;
将所述第二内存使用率超过预设限流阈值的业务方确认为异常业务方,对所述异常业务方进行资源限流处理。
可选的,所述监控服务器节点的第一内存使用率之前,还包括:
接收各所述业务方发送的资源配额请求,基于所述资源配额请求,在所述redis上设置各所述业务方对应的资源配额,各所述资源配额分别对应一组。
可选的,所述若所述第一内存使用率超过预警阈值,获取访问所述服务器节点上redis资源的各业务方的第二内存使用率,包括:
若所述第一内存使用率超过所述预警阈值,计算所述redis的各组对应的占用内存;
基于各所述占用内存以及各所述组对应的资源配额,计算各所述业务方的第二内存使用率。
可选的,所述基于各所述占用内存以及各所述组对应的资源配额,计算各所述业务方的第二内存使用率,包括:
确定各业务方对应的组,将同一组对应的占用内存与资源配额的比值确认为各所述业务方的第二内存使用率。
可选的,所述将所述第二内存使用率超过预设限流阈值的业务方确认为异常业务方,对所述异常业务方进行资源限流处理,包括:
将所述第二内存使用率超过预设限流阈值的业务方确认为异常业务方,将所述异常业务方单位时间内的运行指令数量设置为指定数量,所述指定数量小于数量阈值。
可选的,所述将所述第二内存使用率超过预设限流阈值的业务方确认为异常业务方,对所述异常业务方进行资源限流处理,包括:
将所述第二内存使用率超过预设限流阈值的业务方确认为异常业务方,将所述异常业务方对应的组中对应的内存增长速度超过增长速度阈值的关键字确认为异常关键字;
将包含所述异常关键字的指令确认为异常指令,将所述异常指令单位时间内的运行次数设置为指定次数,所述指定次数小于次数阈值。
可选的,所述若所述第一内存使用率超过预警阈值,获取访问所述服务器节点上redis资源的各业务方的第二内存使用率之前,还包括:
若所述第一内存使用率超过一级预警阈值,则输出一级警告信息;
若所述第一内存使用率超过二级预警阈值,则输出二级警告信息,所述二级预警阈值大于所述一级预警阈值;
若所述第一内存使用率超过三级预警阈值,则输出三级警告信息,所述三级预警阈值大于所述二级预警阈值。
第二方面,本申请实施例提供了一种实现redis业务方资源共享的装置,所述装置包括:
监控模块,用于监控服务器节点的第一内存使用率;
第二内存获取模块,用于若所述第一内存使用率超过预警阈值,获取访问所述服务器节点上redis资源的各业务方的第二内存使用率;
资源限流模块,用于将所述第二内存使用率超过预设限流阈值的业务方确认为异常业务方,对所述异常业务方进行资源限流处理。
可选的,所述装置还包括:
资源配额模块,用于接收各所述业务方发送的资源配额请求,基于所述资源配额请求,在所述redis上设置各所述业务方对应的资源配额,各所述资源配额分别对应一组。
可选的,所述第二内存获取模块,包括:
占用内存计算单元,用于若所述第一内存使用率超过所述预警阈值,计算所述redis的各组对应的占用内存;
第二内存计算单元,用于基于各所述占用内存以及各所述组对应的资源配额,计算各所述业务方的第二内存使用率。
可选的,所述第二内存计算单元,具体用于:
确定各业务方对应的组,将同一组对应的占用内存与资源配额的比值确认为各所述业务方的第二内存使用率。
可选的,所述资源限流模块,具体用于:
将所述第二内存使用率超过预设限流阈值的业务方确认为异常业务方,将所述异常业务方单位时间内的运行指令数量设置为指定数量,所述指定数量小于数量阈值。
可选的,所述资源限流模块,包括:
异常关键字确认单元,用于将所述第二内存使用率超过预设限流阈值的业务方确认为异常业务方,将所述异常业务方对应的组中对应的内存增长速度超过增长速度阈值的关键字确认为异常关键字;
指令限流单元,用于将包含所述异常关键字的指令确认为异常指令,将所述异常指令单位时间内的运行次数设置为指定次数,所述指定次数小于次数阈值。
可选的,所述装置还包括:
警告模块,用于若所述第一内存使用率超过一级预警阈值,则输出一级警告信息;
若所述第一内存使用率超过二级预警阈值,则输出二级警告信息,所述二级预警阈值大于所述一级预警阈值;
若所述第一内存使用率超过三级预警阈值,则输出三级警告信息,所述三级预警阈值大于所述二级预警阈值。
第三方面,本申请实施例提供一种计算机存储介质,所述计算机存储介质存储有多条指令,所述指令适于由处理器加载并执行上述的方法步骤。
第四方面,本申请实施例提供一种电子设备,可包括:处理器和存储器;其中,所述存储器存储有计算机程序,所述计算机程序适于由所述处理器加载并执行上述的方法步骤。
本申请一些实施例提供的技术方案带来的有益效果至少包括:
在本申请一个或多个实施例中,监控服务器节点的第一内存使用率,若所述第一内存使用率超过预警阈值,获取访问所述服务器节点上redis资源的各业务方的第二内存使用率,将所述第二内存使用率超过预设限流阈值的业务方确认为异常业务方,对所述异常业务方进行资源限流处理。通过监控和计算业务方的内存使用率,对使用率高的业务方进行限流处理,避免该业务方占用其他业务方的资源并影响其他业务方的正常运行。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种实现redis业务方资源共享的方法的流程示意图;
图2是本申请实施例提供的另一种实现redis业务方资源共享的方法的流程示意图;
图3a是本申请实施例提供的一种业务方访问redis的举例示意图;
图3b是本申请实施例提供的一种警告信息输出方式设置界面的举例示意图;
图3c是本申请实施例提供的一种确定redis中各组对应的占用内存的举例示意图;
图4是本申请实施例提供的一种实现redis业务方资源共享装置的结构示意图;
图5是本申请实施例提供的一种第二内存获取模块的结构示意图;
图6是本申请实施例提供的一种资源限流模块的结构示意图;
图7是本申请实施例提供的另一种实现redis业务方资源共享装置的结构示意图;
图8是本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本申请的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。在本申请的描述中,需要说明的是,除非另有明确的规定和限定,“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本申请中的具体含义。此外,在本申请的描述中,除非另有说明,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
下面结合具体的实施例对本申请进行详细说明。
在一个实施例中,如图1所示,特提出了一种redis业务方资源共享的方法,该方法可依赖于计算机程序实现,可运行于基于冯诺依曼体系的redis业务方资源共享的装置上。该计算机程序可集成在应用中,也可作为独立的工具类应用运行。其中,本申请实施例中的实现redis业务方资源共享装置可以为电子设备,包括但不限于:个人电脑、平板电脑、手持设备、车载设备、可穿戴设备、计算设备或连接到无线调制解调器的其它处理设备等。在不同的网络中终端设备可以叫做不同的名称,例如:用户设备、接入终端、用户单元、用户站、移动站、移动台、远方站、远程终端、移动设备、用户终端、终端、无线通信设备、用户代理或用户装置、蜂窝电话、无绳电话、5G网络或未来演进网络中的电子设备等。
具体的,该redis业务方资源共享的方法包括:
S101,监控服务器节点的第一内存使用率。
电子设备会实时监控每个服务器节点的第一内存使用率,所述第一内存使用率就是每个服务器节点的已使用内存与总内存的百分比。例如,某服务器节点中已使用内存为15GB,而该服务器节点的总内存为20GB,则该服务器节点的第一内存使用率为75%。
所述服务器节点,即网络节点服务器,是一种服务器装置,节点服务器是针对服务器集群来说的。服务器集群就是指将很多服务器集中起来一起进行同一种服务,在客户端看来就像是只有一个服务器,集群可以利用多个计算机进行并行计算从而获得很高的计算速度,也可以用多个计算机做备份,从而使得任何一个机器坏了整个系统还是能正常运行。
所述服务器节点上部署了远程字典服务(Remote Dictionary Server,redis),redis是一个key-value存储系统,和Memcached类似,它支持存储的value类型相对更多,包括string、lis、set、zset和hash,可用于缓存,事件发布或订阅,高速队列等场景。一个服务器节点上部署了一个master redis与一个或者多个slaver redis,一般情况下masterredis可以进行读写操作,而slaver redis只能进行读操作。
S102,若所述第一内存使用率超过预警阈值,获取访问所述服务器节点上redis资源的各业务方的第二内存使用率。
所述预警阈值,是指当第一内存使用率大于该值时,电子设备会获取使用该服务器节点上的redis各业务方的第二内存使用率,所述预警阈值可以在电子设备出厂时就设置完成、也可以由开发人员在电子设备上进行设置,或相关管理人员在电子设备上进行设置。
第一使用率超过预警阈值则代表使用该服务器节点的业务方占用资源过多,如果继续增长可能会出现服务器资源不足或者占用其他业务方资源配额的情况,从而导致业务方不能正常运作。
所述第二内存使用率,是指各业务方已使用内存占该业务方接入redis前所申请的资源配额的百分比。例如,业务方A申请到的资源为5GB,而业务方A在电子设备获取第二内存使用率时的已使用内存为2GB,则业务方A的第二内存使用率为40%。
可选的,当服务器节点的第一内存使用率超过预警阈值时,电子设备可以输出向相关管理人员输出预警信息,提示相关管理人员该服务器节点的内存使用率过高。相关管理人员可以对该服务器节点内存使用率过高的情况进行调查并避免影响业务方正常运作。输出预警信息的方法包括但不限于语音、窗口弹出或短信提醒等。
S103,将所述第二内存使用率超过预设限流阈值的业务方确认为异常业务方,对所述异常业务方进行资源限流处理。
所述预设限流阈值,是指当业务方的第二内存使用率超过该值时,电子设备会将该业务方确认为异常业务方并对其进行资源限流处理,可以在电子设备出厂时就设置完成,也可以由开发人员在电子设备上进行设置,或相关管理人员在电子设备上进行设置。
当业务方的第二内存使用率超过预设限流阈值时,代表该业务方占用的内存过高,在其所访问的redis部署的服务器节点的内存使用率过高的情况下,该业务方的内存使用率若继续增长可能会占用其他业务方的资源,导致其他业务方无法正常运行。
所述资源限流处理,是指对异常业务方访问redis时会产生的流量进行限制,一种可行的对异常业务方进行限流的方法为:
将所述异常业务方单位时间内的运行指令数量设置为指定数量,所述指定数量小于数量阈值。
所述数量阈值,是指电子设备发送给业务方的配置数据中会指定该业务方单位时间内允许运行指令的数量。将所述异常业务方单位时间内的运行指令数量设置为指定数量,是指电子设备将异常业务方中的单位时间内的运行是指数量进行更改,将其改为小于预设数量的值,则异常业务方单位时间内允许运行的指令变少了,从而达到了限流的目的。
所述数量阈值和指定数量,可以在电子设备出厂时就设置完成,也可以由开发人员在电子设备上进行设置,或相关管理人员在电子设备上进行设置。
例如,相关管理人员给业务方A设置的数量阈值为每秒允许运行20个指令,指定数量为每秒允许运行10个指令,则在业务方A正常运行时每秒最多可以运行20个指令,而当电子设备将业务方A确认为异常业务方时,业务方A每秒最多可以运行10个指令,达到了对业务方A进行限流的目的。
可选的,所述指定数量不仅可以是一个值,也可以按照异常业务方的第二内存使用率的大小设置不同的数值,例如:
当异常业务方的第二内存使用率大于60%时,指定数值为每秒15个指令;
当异常业务方的第二内存使用率大于70%时,指定数值为每秒10个指令;
当异常业务方的第二内存使用率大于80%时,指定数值为每秒5个指令。
可选的,对异常业务方进行限流处理时,电子设备可以向异常业务方发送限流处理通知,提醒异常业务方内存使用率过高,方便及时排查维护。
在本申请实施例中,监控服务器节点的第一内存使用率,若所述第一内存使用率超过预警阈值,获取访问所述服务器节点上redis资源的各业务方的第二内存使用率,将所述第二内存使用率超过预设限流阈值的业务方确认为异常业务方,对所述异常业务方进行资源限流处理。通过监控和计算业务方的内存使用率,对使用率高的业务方进行限流处理,避免该业务方占用其他业务方的资源并影响其他业务方的正常运行。
请参见图2,图2是本申请提出的一种实现redis业务方资源共享方法的另一种实施例的流程示意图。具体的:
S201,接收各业务方发送的资源配额请求,基于所述资源配额请求,在所述redis上设置各所述业务方对应的资源配额,各所述资源配额分别对应一组。
在业务方接入部署在节点上的redis前,业务方会向电子设备发送资源配额请求,申请在服务器中可以使用的内存大小,电子设备会根据该资源配额请求在redis上设置一个内存大小为该资源配额大小的组(group),同时业务方在使用关键字(key)在redis中查询数据(value)前,会在key前加上“group名@”的前缀。
例如,业务方A申请资源配额为5GB,电子设备在redis上设置内存大小为5GB的group,名称为group1,如图3a所示为一种业务方访问redis的举例示意图,则业务方A在访问redis时会将key1改为group1@key1,代表前缀为“group1@”的key为group1中的key,包含前缀为“group1@”的key的指令为业务方A的指令。业务方A通过指令“get group1@key1”查找到redis中group1中的group@key1对应的value1。
S202,监控服务器节点的第一内存使用率。
具体可参见S101,此处不再赘述。
S203,若所述第一内存使用率超过一级预警阈值,则输出一级警告信息;若所述第一内存使用率超过二级预警阈值,则输出二级警告信息;若所述第一内存使用率超过三级预警阈值,则输出三级警告信息。
根据服务器节点内存使用率达到不同的级别,电子设备输出不同的警告信息,其中二级预警阈值小于一级预警阈值,三级预警阈值小于二级预警阈值。所述一级预警阈值、二级预警阈值、三级预警阈值可以在电子设备出厂时就设置完成、也可以由开发人员在电子设备上进行设置,或相关管理人员在电子设备上进行设置。
所述输出警告信息的方式包括但不限于电话、短信、窗口弹出或社交软件提醒等,各级警告信息的输出方式可以相同也可以不同,输出方式可以在电子设备出厂时就设置完成、也可以由开发人员在电子设备上进行设置,或相关管理人员在电子设备上进行设置。
例如,如图3b所示为一种警告信息输出方式设置的界面,可以通过勾选的方式选择各级警告信息的输出方式和各级的预警阈值,如图3b所示,当该服务器节点的第一内存使用率超过60%时,电子设备会向相关管理人员的钉钉发送警告信息;当该服务器节点的第一内存使用率超过75%时,电子设备会向相关管理人员的发送有关警告信息的短信;当该服务器节点的第一内存使用率超过80%时,电子设备会向相关管理人员打电话通知警告信息。
可选的,相关管理人员在接收到警告信息时,也可以手动给电子设备发送指令,忽略第一内存使用率超过预警阈值的条件,直接执行所述计算所述redis的各组对应的占用内存的步骤。
可选的,可以将所述三级预警阈值与所述预警阈值设置为同一个值,则当第一内存使用率超过三级预警阈值时,电子设备会直接执行所述计算所述redis的各组对应的占用内存的步骤。
S204,若所述第一内存使用率超过预警阈值,计算所述redis的各组对应的占用内存。
所述redia的各组对应的占用内存,是指redis中根据申请的各业务方设置的group中的key对应的占用内存的和,key对应的占用内存即key对应的value所占用的内存大小。
一种可行的计算各组对应的占用内存的方法为:
调用redis内存分析工具rdbtools,可以解析redis中的rdb文件并分析rdb文件对应哪一个key,所述rdb文件是key对应的value在redis中的一种储存形式。电子设备会根据key的前缀分辨key属于哪一个group,对同一group的key对应内存求和可得该group对应的占用内存。
例如,如图3c所示为一种确定redis中各组对应的占用内存的举例示意图,通过rdbtools我们获取到六个不同的key对应的内存,key的前缀名代表这个key是在与前缀名相同的组名的group中,所以group1@key1、group1@key2、group1@key5、group1@key6为group1中的key,则group1对应的占用内存为512M+256M+128M+512M=1408M,即1.375GB;group2@key3、group2@key4为group2中的key,则group2对应的占用内存为128M+512M=640M,即0.625GB。
S205,确定各业务方对应的组,将同一组对应的占用内存与资源配额的比值确认为各所述业务方的第二内存使用率。
所述确定各业务方对应的组,是指电子设备会根据业务方申请资源配额时给业务方配置的group名找到与group对应的业务方,group的对应占用内存即为该业务方的占用内存。
电子设备会计算业务方的占用内存占该业务方的申请资源配额的百分比,并将该百分比确认为该业务方的第二内存使用率。例如,业务方A对应的group为group1,电子设备计算出group1对应的占用内存为2GB,而业务方A申请的资源配额为5GB,则业务方A的第二内存使用率为40%。
S206,将所述第二内存使用率超过预设限流阈值的业务方确认为异常业务方,对所述异常业务方进行资源限流处理。
所述资源限流处理,是指对异常业务方访问redis时会产生的流量进行限制,进行资源限流处理的方法包括但不限于以下两种方法:
方法一:具体可参见S103中的一种可行的对异常业务方进行限流的方法,此处不再赘述。
方法二:将所述第二内存使用率超过预设限流阈值的业务方确认为异常业务方,将所述异常业务方对应的组中对应的内存增长速度超过增长速度阈值的关键字确认为异常关键字;
将包含所述异常关键字的指令确认为异常指令,将所述异常指令单位时间内的运行次数设置为指定次数,所述指定次数小于次数阈值。
关键字对应的内存增长速度,是指key对应的value所占内存的增长速度。所述增长速度阈值,是指当关键字对应的内存增长速度超过该值时,电子设备会将所述关键字确认为异常关键字。
所述包含异常关键字的指令,是指需要通过所述异常关键字对redis中的数据进行读、写操作的指令。所述次数阈值,是指电子设备发送给业务方的配置数据中会指定该业务方的某条指令单位时间内运行的次数。将所述异常指令单位时间内的运行次数设置为指定次数,是指将异常指令单位时间内允许运行的次数进行更改,将其改为小于次数阈值的值,若将指定次数设置为0,则表示对异常指令禁用。
在服务器节点的第一内存使用率超过预警阈值的情况下,关键字对应的增长速度快,说明异常业务方在短时间内通过包含该关键字的指令写入了大量的数据,对写入大量数据的指令进行次数限制或禁用,达到了对异常业务方进行限流的目的。
可选的,方法一和方法二的资源限流方法可以同时使用,也可以只使用其中一种。
在本申请实施例中,根据各业务方的资源配额请求给各业务方在redis上设置资源配额大小的组,在第一内存率超过所述预警阈值时,会根据各组的占用内存来计算各业务方的第二内存使用率,分组并给关键字加上前缀能够找到哪些关键字属于哪个组,则一个组内关键字对应的内存之和即为对应的业务方所占用的内存。
将所述第二内存使用率超过预设限流阈值的业务方确认为异常业务方,对所述异常业务方单位时间内运行指令数量进行限制,或对异常业务方中包含增长速度快的关键字的指令的单位时间运行次数进行限制,达到对异常业务方的限流目的,减缓异常业务方的使用内存的增长,缓解节点服务器的压力。
同时还会根据第一内存使用率达到不同的级别向相关管理人员输警告信息,通知相关管理人员对节点服务器的内存使用情况进行监控,如发现异常可以及时处理。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
请参见图4,其示出了本申请一个示例性实施例提供的实现redis业务方资源共享装置的结构示意图。该实现redis业务方资源共享装置可以通过软件、硬件或者两者的结合实现成为装置的全部或一部分。该装置1包括监控模块11、第二内存获取模块12和资源限流模块13。
监控模块11,用于监控服务器节点的第一内存使用率;
第二内存获取模块12,用于若所述第一内存使用率超过预警阈值,获取访问所述服务器节点上redis资源的各业务方的第二内存使用率;
资源限流模块13,用于将所述第二内存使用率超过预设限流阈值的业务方确认为异常业务方,对所述异常业务方进行资源限流处理。
可选的,所述装置1还包括:
资源配额模块14,用于接收各所述业务方发送的资源配额请求,基于所述资源配额请求,在所述redis上设置各所述业务方对应的资源配额,各所述资源配额分别对应一组。
可选的,如图5所示,所述第二内存获取模块12,包括:
占用内存计算单元121,用于若所述第一内存使用率超过所述预警阈值,计算所述redis的各组对应的占用内存;
第二内存计算单元122,用于基于各所述占用内存以及各所述组对应的资源配额,计算各所述业务方的第二内存使用率。
可选的,所述第二内存计算单元122,具体用于:
确定各业务方对应的组,将同一组对应的占用内存与资源配额的比值确认为各所述业务方的第二内存使用率。
可选的,所述资源限流模块13,具体用于:
将所述第二内存使用率超过预设限流阈值的业务方确认为异常业务方,将所述异常业务方单位时间内的运行指令数量设置为指定数量,所述指定数量小于数量阈值。
可选的,如图6所示,所述资源限流模块13,包括:
异常关键字确认单元131,用于将所述第二内存使用率超过预设限流阈值的业务方确认为异常业务方,将所述异常业务方对应的组中对应的内存增长速度超过增长速度阈值的关键字确认为异常关键字;
指令限流单元132,用于将包含所述异常关键字的指令确认为异常指令,将所述异常指令单位时间内的运行次数设置为指定次数,所述指定次数小于次数阈值。
可选的,所述装置1还包括:
警告模块15,用于若所述第一内存使用率超过一级预警阈值,则输出一级警告信息;
若所述第一内存使用率超过二级预警阈值,则输出二级警告信息,所述二级预警阈值大于所述一级预警阈值;
若所述第一内存使用率超过三级预警阈值,则输出三级警告信息,所述三级预警阈值大于所述二级预警阈值。
如图7所示,为另一种实现redis业务方资源共享装置的结构示意图。
在本实施例中,监控服务器节点的第一内存使用率,若所述第一内存使用率超过预警阈值,获取访问所述服务器节点上redis资源的各业务方的第二内存使用率,将所述第二内存使用率超过预设限流阈值的业务方确认为异常业务方,对所述异常业务方进行资源限流处理。通过监控和计算业务方的内存使用率,对使用率高的业务方进行限流处理,避免该业务方占用其他业务方的资源并影响其他业务方的正常运行。
需要说明的是,上述实施例提供的实现redis业务方资源共享的装置在执行实现redis业务方资源共享的方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的实现redis业务方资源共享的装置与实现redis业务方资源共享的方法实施例属于同一构思,其体现实现过程详见方法实施例,这里不再赘述。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
本申请实施例还提供了一种计算机存储介质,所述计算机存储介质可以存储有多条指令,所述指令适于由处理器加载并执行如上述图1-图3c所示实施例的所述实现redis业务方资源共享的方法,具体执行过程可以参见图1-图3c所示实施例的具体说明,在此不进行赘述。
本申请还提供了一种计算机程序产品,该计算机程序产品存储有至少一条指令,所述至少一条指令由所述处理器加载并执行如上述图1-图2所示实施例的所述实现redis业务方资源共享的方法,具体执行过程可以参见图1-图2所示实施例的具体说明,在此不进行赘述。
请参见图8,为本申请实施例提供了一种电子设备的结构示意图。如图8所示,所述电子设备1000可以包括:至少一个处理器1001,至少一个网络接口1004,用户接口1003,存储器1005,至少一个通信总线1002。
其中,通信总线1002用于实现这些组件之间的连接通信。
其中,用户接口1003可以包括显示屏(Display)、摄像头(Camera),可选用户接口1003还可以包括标准的有线接口、无线接口。
其中,网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。
其中,处理器1001可以包括一个或者多个处理核心。处理器1001利用各种借口和线路连接整个服务器1000内的各个部分,通过运行或执行存储在存储器1005内的指令、程序、代码集或指令集,以及调用存储在存储器1005内的数据,执行服务器1000的各种功能和处理数据。可选的,处理器1001可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable Logic Array,PLA)中的至少一种硬件形式来实现。处理器1001可集成中央处理器(Central Processing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示屏所需要显示的内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器1001中,单独通过一块芯片进行实现。
其中,存储器1005可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。可选的,该存储器1005包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器1005可用于存储指令、程序、代码、代码集或指令集。存储器1005可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现上述各个方法实施例的指令等;存储数据区可存储上面各个方法实施例中涉及到的数据等。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图8所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及实现redis业务方资源共享的应用程序。
在图8所示的电子设备1000中,用户接口1003主要用于为用户提供输入的接口,获取用户输入的数据;而处理器1001可以用于调用存储器1005中存储的实现redis业务方资源共享应用程序,并具体执行以下操作:
监控服务器节点的第一内存使用率;
若所述第一内存使用率超过预警阈值,获取访问所述服务器节点上redis资源的各业务方的第二内存使用率;
将所述第二内存使用率超过预设限流阈值的业务方确认为异常业务方,对所述异常业务方进行资源限流处理。
在一个实施例中,所述处理器1001在执行监控服务器节点的第一内存使用率之前,还执行以下操作:
接收各所述业务方发送的资源配额请求,基于所述资源配额请求,在所述redis上设置各所述业务方对应的资源配额,各所述资源配额分别对应一组。
在一个实施例中,所述处理器1001在执行若所述第一内存使用率超过预警阈值,获取访问所述服务器节点上redis资源的各业务方的第二内存使用率时,具体执行以下操作:
若所述第一内存使用率超过所述预警阈值,计算所述redis的各组对应的占用内存;
基于各所述占用内存以及各所述组对应的资源配额,计算各所述业务方的第二内存使用率。
在一个实施例中,所述处理器1001在执行基于各所述占用内存以及各所述组对应的资源配额,计算各所述业务方的第二内存使用率时,具体执行以下操作:
确定各业务方对应的组,将同一组对应的占用内存与资源配额的比值确认为各所述业务方的第二内存使用率。
在一个实施例中,所述处理器1001在执行将所述第二内存使用率超过预设限流阈值的业务方确认为异常业务方,对所述异常业务方进行资源限流处理时,具体执行以下操作:
将所述第二内存使用率超过预设限流阈值的业务方确认为异常业务方,将所述异常业务方单位时间内的运行指令数量设置为指定数量,所述指定数量小于数量阈值。
在一个实施例中,所述处理器1001在执行将所述第二内存使用率超过预设限流阈值的业务方确认为异常业务方,对所述异常业务方进行资源限流处理时,具体执行以下操作:
将所述第二内存使用率超过预设限流阈值的业务方确认为异常业务方,将所述异常业务方对应的组中对应的内存增长速度超过增长速度阈值的关键字确认为异常关键字;
将包含所述异常关键字的指令确认为异常指令,将所述异常指令单位时间内的运行次数设置为指定次数,所述指定次数小于次数阈值。
在一个实施例中,所述处理器1001在执行若所述第一内存使用率超过预警阈值,获取访问所述服务器节点上redis资源的各业务方的第二内存使用率之前,还执行以下操作:
若所述第一内存使用率超过一级预警阈值,则输出一级警告信息;
若所述第一内存使用率超过二级预警阈值,则输出二级警告信息,所述二级预警阈值大于所述一级预警阈值;
若所述第一内存使用率超过三级预警阈值,则输出三级警告信息,所述三级预警阈值大于所述二级预警阈值。
在本实施例中,监控服务器节点的第一内存使用率,若所述第一内存使用率超过预警阈值,获取访问所述服务器节点上redis资源的各业务方的第二内存使用率,将所述第二内存使用率超过预设限流阈值的业务方确认为异常业务方,对所述异常业务方进行资源限流处理。通过监控和计算业务方的内存使用率,对使用率高的业务方进行限流处理,避免该业务方占用其他业务方的资源并影响其他业务方的正常运行。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体或随机存储记忆体等。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。

Claims (10)

1.一种实现redis业务方资源共享的方法,其特征在于,所述方法包括:
监控服务器节点的第一内存使用率;
若所述第一内存使用率超过预警阈值,获取访问所述服务器节点上redis资源的各业务方的第二内存使用率;
将所述第二内存使用率超过预设限流阈值的业务方确认为异常业务方,对所述异常业务方进行资源限流处理。
2.根据权利要求1所述的方法,其特征在于,所述监控服务器节点的第一内存使用率之前,还包括:
接收各所述业务方发送的资源配额请求,基于所述资源配额请求,在所述redis上设置各所述业务方对应的资源配额,各所述资源配额分别对应一组。
3.根据权利要求2所述的方法,其特征在于,所述若所述第一内存使用率超过预警阈值,获取访问所述服务器节点上redis资源的各业务方的第二内存使用率,包括:
若所述第一内存使用率超过所述预警阈值,计算所述redis的各组对应的占用内存;
基于各所述占用内存以及各所述组对应的资源配额,计算各所述业务方的第二内存使用率。
4.根据权利要求3所述的方法,其特征在于,所述基于各所述占用内存以及各所述组对应的资源配额,计算各所述业务方的第二内存使用率,包括:
确定各业务方对应的组,将同一组对应的占用内存与资源配额的比值确认为各所述业务方的第二内存使用率。
5.根据权利要求1所述的方法,其特征在于,所述将所述第二内存使用率超过预设限流阈值的业务方确认为异常业务方,对所述异常业务方进行资源限流处理,包括:
将所述第二内存使用率超过预设限流阈值的业务方确认为异常业务方,将所述异常业务方单位时间内的运行指令数量设置为指定数量,所述指定数量小于数量阈值。
6.根据权利要求1所述的方法,其特征在于,所述将所述第二内存使用率超过预设限流阈值的业务方确认为异常业务方,对所述异常业务方进行资源限流处理,包括:
将所述第二内存使用率超过预设限流阈值的业务方确认为异常业务方,将所述异常业务方对应的组中对应的内存增长速度超过增长速度阈值的关键字确认为异常关键字;
将包含所述异常关键字的指令确认为异常指令,将所述异常指令单位时间内的运行次数设置为指定次数,所述指定次数小于次数阈值。
7.根据权利要求1所述的方法,其特征在于,所述若所述第一内存使用率超过预警阈值,获取访问所述服务器节点上redis资源的各业务方的第二内存使用率之前,还包括:
若所述第一内存使用率超过一级预警阈值,则输出一级警告信息;
若所述第一内存使用率超过二级预警阈值,则输出二级警告信息,所述二级预警阈值大于所述一级预警阈值;
若所述第一内存使用率超过三级预警阈值,则输出三级警告信息,所述三级预警阈值大于所述二级预警阈值。
8.一种实现redis业务方资源共享的装置,其特征在于,所述装置包括:
监控模块,用于监控服务器节点的第一内存使用率;
第二内存获取模块,用于若所述第一内存使用率超过预警阈值,获取访问所述服务器节点上redis资源的各业务方的第二内存使用率;
资源限流模块,用于将所述第二内存使用率超过预设限流阈值的业务方确认为异常业务方,对所述异常业务方进行资源限流处理。
9.一种计算机存储介质,其特征在于,所述计算机存储介质存储有多条指令,所述指令适于由处理器加载并执行如权利要求1~7任意一项的方法步骤。
10.一种电子设备,其特征在于,包括:处理器和存储器;其中,所述存储器存储有计算机程序,所述计算机程序适于由所述处理器加载并执行如权利要求1~7任意一项的方法步骤。
CN202011052195.6A 2020-09-29 2020-09-29 redis业务方资源共享的方法、装置、存储介质及电子设备 Pending CN112286930A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011052195.6A CN112286930A (zh) 2020-09-29 2020-09-29 redis业务方资源共享的方法、装置、存储介质及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011052195.6A CN112286930A (zh) 2020-09-29 2020-09-29 redis业务方资源共享的方法、装置、存储介质及电子设备

Publications (1)

Publication Number Publication Date
CN112286930A true CN112286930A (zh) 2021-01-29

Family

ID=74422249

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011052195.6A Pending CN112286930A (zh) 2020-09-29 2020-09-29 redis业务方资源共享的方法、装置、存储介质及电子设备

Country Status (1)

Country Link
CN (1) CN112286930A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112965811A (zh) * 2021-02-03 2021-06-15 福建天泉教育科技有限公司 一种监控数据的优化方法及服务端
CN114039893A (zh) * 2021-11-08 2022-02-11 航天信息股份有限公司 一种api网关限速方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040260652A1 (en) * 2003-06-13 2004-12-23 Anthony Rose Monitoring of computer-related resources and associated methods and systems for disbursing compensation
CN110430141A (zh) * 2019-08-08 2019-11-08 北京字节跳动网络技术有限公司 限流方法及装置
CN110838987A (zh) * 2019-10-08 2020-02-25 福建天泉教育科技有限公司 队列限流方法、存储介质
CN110895524A (zh) * 2018-08-24 2020-03-20 武汉斗鱼网络科技有限公司 redis满载时键的复合过期方法、装置、服务器及存储介质
CN110932935A (zh) * 2019-11-26 2020-03-27 深圳前海微众银行股份有限公司 资源控制方法、装置、设备及计算机存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040260652A1 (en) * 2003-06-13 2004-12-23 Anthony Rose Monitoring of computer-related resources and associated methods and systems for disbursing compensation
CN110895524A (zh) * 2018-08-24 2020-03-20 武汉斗鱼网络科技有限公司 redis满载时键的复合过期方法、装置、服务器及存储介质
CN110430141A (zh) * 2019-08-08 2019-11-08 北京字节跳动网络技术有限公司 限流方法及装置
CN110838987A (zh) * 2019-10-08 2020-02-25 福建天泉教育科技有限公司 队列限流方法、存储介质
CN110932935A (zh) * 2019-11-26 2020-03-27 深圳前海微众银行股份有限公司 资源控制方法、装置、设备及计算机存储介质

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112965811A (zh) * 2021-02-03 2021-06-15 福建天泉教育科技有限公司 一种监控数据的优化方法及服务端
CN112965811B (zh) * 2021-02-03 2023-12-19 福建天泉教育科技有限公司 一种监控数据的优化方法及服务端
CN114039893A (zh) * 2021-11-08 2022-02-11 航天信息股份有限公司 一种api网关限速方法及装置

Similar Documents

Publication Publication Date Title
CN108776934B (zh) 分布式数据计算方法、装置、计算机设备及可读存储介质
CN107241281B (zh) 一种数据处理方法及其装置
CN109344153B (zh) 业务数据的处理方法及终端设备
CN109947668B (zh) 存储数据的方法和装置
CN103346912B (zh) 告警相关性分析的方法、装置及系统
CN109981702B (zh) 一种文件存储方法及系统
CN109756528B (zh) 频率控制方法及装置、设备、存储介质、服务器
CN112445857A (zh) 一种基于数据库的资源配额管理方法和装置
CN112040429A (zh) 一种基于分布式存储的短信管理系统及方法
CN112667405B (zh) 信息处理方法、装置、设备及存储介质
CN112286930A (zh) redis业务方资源共享的方法、装置、存储介质及电子设备
CN111488594A (zh) 一种基于云服务器的权限检查方法、装置、存储介质及终端
CN111490890A (zh) 基于微服务架构的分级注册方法、装置、存储介质及设备
CN113297031A (zh) 容器集群中的容器组防护方法及装置
CN116418653A (zh) 基于多指标根因定位算法的故障定位方法及装置
CN114153609A (zh) 资源控制方法及装置、电子设备、计算机可读存储介质
CN111930505B (zh) 大数据平台的数据资源管理方法及系统、服务器及介质
CN111324583B (zh) 一种业务日志的分类方法及装置
CN116308824A (zh) 基于知识图谱的团伙欺诈风险识别方法及相关设备
WO2020000724A1 (zh) 云平台主机间通信负载的处理方法、电子装置及介质
CN113297436B (zh) 基于关系图网络的用户策略分配方法、装置及电子设备
CN114356712A (zh) 数据处理方法、装置、设备、可读存储介质及程序产品
CN113783912A (zh) 请求分发方法、装置及存储介质
CN111090633A (zh) 一种分布式文件系统的小文件聚合方法、装置及设备
CN113687870B (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