本技术涉及存储,特别涉及一种资源管理方法、系统、设备及介质。
背景技术:
1、 在当前的分布式全文检索框架中,会在jvm(java virtual machine,java虚拟机)内存中规划出相关的缓存区域,这些缓存区分别负责各自对对应的业务数据进行数据缓存,以提升检索系统的数据和请求处理速度。
2、由于存在硬件上的资源限制,jvm内存空间是有限的,当内存空间中加载了过多数据就会存在内存溢出的风险,所以目前全文检索系统中存在一套静态的断路器控制机制,在某块缓存区使用达到设定的上限阈值时,进行任务的自主强行中断,以保护内存区域不会出现溢出风险进而保护检索系统的正常风险。但现有方案存在较大的局限性,其提供的保护通常都是静态而死板的,并不能识别实际的节点缓存资源状态和节点运行状态,因此亟需一种动态的资源管理方法以解决上述技术问题。
技术实现思路
1、基于此,有必要针对上述技术问题,提供一种资源管理方法、系统、设备及介质,以解决上述技术问题。
2、第一方面,本技术提供一种资源管理方法,所述方法包括:
3、响应于动态断路器开关的启动,监控当前存储集群内的总缓存区域对应的第一当前使用资源和多个缓存分区域对应的第二当前使用资源;
4、响应于任务的下发,根据所述任务到达的目标缓存分区域的类型,调用与所述目标缓存分区域匹配的缓存控制策略;
5、根据调用的所述目标缓存区域匹配的所述缓存控制策略、监控到的所述总缓存区域对应的第一当前使用资源、所述目标缓存分区域对应的第二当前使用资源以及所述任务对应的预计消耗资源,评估所述任务的执行状态;
6、响应于所述任务的执行状态为放行状态,则调用所述目标缓存分区域内的资源以执行所述任务。
7、在一些实施例中,所述方法还包括:
8、响应于所述任务的执行状态为等待状态,定时重新评估所述任务的执行状态;
9、若评估所述任务的执行状态为等待状态,则调用所述目标缓存分区域的资源以执行所述任务;
10、若评估次数到达阈值后所述任务的执行状态为等待状态,则熔断所述任务并释放所述任务占用的资源。
11、在一些实施例中,所述监控当前存储集群内的总缓存区域对应的第一当前使用资源和多个缓存分区域对应的第二当前使用资源,包括:
12、设置缓存监控器监控和心跳间隔数值;
13、在所述缓存监控器正常运行时,根据所述缓存监控器每间隔一次所述心跳间隔数值,检测所述当前检索系统内的总缓存区域对应的第一当前使用资源和多个缓存分区域对应的第二当前使用资源并记录至缓存资源记录表中;
14、根据当前记录到的所述第一当前使用资源和所述第二当前使用资源,替换所述缓存资源记录表中上一次记录到的第一当前使用资源和第二当前使用资源以实现对所述缓存资源记录表的更新。
15、在一些实施例中,所述监控当前存储集群内的总缓存区域对应的第一当前使用资源和多个缓存分区域对应的第二当前使用资源之间,还包括检测所述缓存监控器是否正常运行:
16、监听所述缓存资源记录表中记录的第一当前使用资源和第二当前使用资源是否更新;
17、若所述缓存资源记录表中记录的第一当前使用资源和第二当前使用资源超过预设监听阈值后未更新,则判定所述缓存监控器未正常运行;
18、若所述缓存资源记录表中记录的第一当前使用资源和第二当前使用资源在预设监听阈值内更新,则判定所述缓存监控器正常运行。
19、在一些实施例中,所述方法包括:
20、若判定所述缓存监控器未正常运行,则生成缓存监控器重启指令;
21、响应于生成的缓存监控器重启指令,对所述缓存监控器进行重启;
22、触发重启后的所述缓存监控器检测所述当前检索系统内的总缓存区域内的第一当前使用资源和多个缓存分区域内的第二当前使用资源并更新所述缓存资源记录表。
23、在一些实施例中,所述方法包括:
24、检测到所述缓存监控器重启后,若所述缓存资源记录表中记录的第一当前使用资源和第二当前使用资源超过预设监听阈值后未更新,则判定所述缓存监控器故障并生成监控器故障告警提示以提示用户对所述缓存监控器进行检修。
25、在一些实施例中,所述缓存控制策略包括节点缓存控制策略、分片缓存控制策略、字段缓存控制策略以及索引缓存控制策略,所述根据所述任务下发的目标缓存分区域的类型,调用与所述目标缓存分区域匹配的缓存控制策略,包括:
26、若所述目标缓存分区域为节点级缓存区域,则调用节点缓存控制策略;
27、若所述目标缓存分区域为片缓存区域,则调用分片缓存控制策略;
28、若所述目标缓存分区域为字段聚合缓存区域,则调用字段缓存控制策略;
29、若所述目标缓存分区域为索引录入缓存区域,则调用索引缓存控制策略。
30、在一些实施例中,调用节点缓存控制策略时,所述根据调用的所述目标缓存区域匹配的所述缓存控制策略、监控到的所述总缓存区域对应的第一当前使用资源、所述目标缓存分区域对应的第二当前使用资源以及所述任务对应的预计消耗资源,评估所述任务的执行状态,包括:
31、根据当前监控到的总缓存区域对应的第一当前使用资源与所述预计消耗资源的和与总缓存资源的比值,确定总预计消耗资源百分比;
32、根据当前监控到的节点级缓存区域内的第二当前使用资源与所述预计消耗资源的和与节点总缓存资源的比值确定第一预计消耗资源百分比;
33、若所述第一预计消耗资源百分比未超过第一断路器阈值,则评估所述任务的执行状态为放行状态;
34、若所述第一预计消耗资源百分比超过第一断路器阈值且所述总预计消耗资源百分比未超过总预设熔断阈值,则评估所述任务的执行状态为放行状态;
35、若所述第一预计消耗资源百分比超过第一断路器阈值且所述总预计消耗资源百分比超过总预设熔断阈值,则评估所述任务的执行状态为等待状态。
36、在一些实施例中,调用分片缓存控制策略时,所述根据调用的所述目标缓存区域匹配的所述缓存控制策略、监控到的所述总缓存区域对应的第一当前使用资源、所述目标缓存分区域对应的第二当前使用资源以及所述任务对应的预计消耗资源,评估所述任务的执行状态,包括:
37、根据当前监控到的总缓存区域对应的所述第一当前使用资源与所述预计消耗资源的和与总缓存资源的比值,确定总预计消耗资源百分比;
38、根据当前监控到的分片级缓存区域对应的第二当前使用资源与所述预计消耗资源的和与分片总缓存资源的比值确定第二预计消耗资源百分比;
39、若所述第二预计消耗资源百分比未超过第二断路器阈值,则评估所述任务的执行状态为放行状态;
40、若所述第二预计消耗资源百分比超过第二断路器阈值、所述总预计消耗资源百分比未超过总预设熔断阈值且当前监控到的分片级缓存区域内的第二当前使用资源与所述预计消耗资源的和与所述分片缓存区域所在节点缓存区域对应的节点总缓存资源的比值未超过第三断路器阈值,则评估所述任务的执行状态为放行状态;
41、若所述第二预计消耗资源百分比超过第二断路器阈值、所述总预计消耗资源百分比超过总预设熔断阈值和/或当前监控到的分片级缓存区域内的第二当前使用资源与所述预计消耗资源的和与所述分片缓存区所在节点缓存区对应的节点总缓存资源的比值超过第三断路器阈值,则评估所述任务的执行状态为等待状态。
42、在一些实施例中,调用索引缓存控制策略时,所述根据调用的所述目标缓存区域匹配的所述缓存控制策略、监控到的所述总缓存区域对应的第一当前使用资源、所述目标缓存分区域对应的第二当前使用资源以及所述任务对应的预计消耗资源,评估所述任务的执行状态,包括:
43、根据当前监控到的总缓存区域对应的所述第一当前使用资源与所述预计消耗资源的和与总缓存资源的比值,确定总预计消耗资源百分比;
44、根据当前监控到的索引录入缓存区域对应的第二当前使用资源与所述预计消耗资源的和与索引总缓存资源的比值确定第三预计消耗资源百分比;
45、若所述第三预计消耗资源百分比未超过第四断路器阈值,则评估所述任务的执行状态为放行状态;
46、若所述第三预计消耗资源百分比超过所述第四断路器阈值且未超过第五预设分区阈值以及所述总预计消耗资源百分比未超过总预设熔断阈值,则获取集群内当前运行任务的特征,若所述特征为多写入请求特征时,评估所述任务的执行状态为放行状态,若所述特征为多查询请求特征时,评估所述任务的执行状态为等待状态;
47、若所述第三预计消耗资源百分比超过所述第五预设分区阈值和/或所述总预计消耗资源百分比未超过总预设熔断阈值,则评估所述任务的执行状态为等待状态。
48、在一些实施例中,调用字段缓存控制策略时,所述根据调用的所述目标缓存区域匹配的所述缓存控制策略、监控到的所述总缓存区域对应的第一当前使用资源、所述目标缓存分区域对应的第二当前使用资源以及所述任务对应的预计消耗资源,评估所述任务的执行状态,包括:
49、根据当前监控到的总缓存区域内的所述第一当前使用资源与所述预计消耗资源的和与总缓存资源的比值,确定总预计消耗资源百分比;
50、根据当前监控到的字段聚合缓存区域内的第二当前使用资源与所述预计消耗资源的和与字段总缓存资源的比值确定第四预计消耗资源百分比;
51、若所述第四预计消耗资源百分比未超过第六预设分区阈值,则评估所述任务的执行状态为放行状态;
52、若所述第四预计消耗资源百分比超过所述第六预设分区阈值且所述总预计消耗资源百分比未超过总预设熔断阈值,则评估所述任务的执行状态为放行状态;
53、若所述第四预计消耗资源百分比超过第六预设分区阈值和/或所述总预计消耗资源百分比超过总预设熔断阈值,则评估所述任务的执行状态为等待状态。
54、在一些实施例中,所述定时重新评估所述任务的执行状态,包括:
55、间隔所述心跳间隔数值后获取一次所述缓存资源记录表中存放的总缓存区域对应的第一当前使用资源和目标缓存分区域对应的第二当前使用资源;
56、根据调用的所述目标缓存区域匹配的所述缓存控制策略、获取到的所述总缓存区域对应的第一当前使用资源、所述目标缓存分区域对应的第二当前使用资源以及所述任务对应的预计消耗资源,评估所述任务的执行状态。
57、在一些实施例中,所述方法还包括心跳间隔数值的设置:
58、判断所述当前存储集群对应的集群规模的等级以及所述当前存储集群内已存储的数据规模的等级;
59、根据所述集群规模的等级和所述数据规模的等级,设置所述心跳间隔数值。
60、在一些实施例中,所述判断所述当前存储集群对应的集群规模的等级以及所述当前存储集群内已存储的数据规模的等级,包括:
61、比较当前存储集群内的节点数量和预设节点阈值;
62、若所述当前存储集群内的节点数量超过预设节点阈值,则判定所述集群规模为第一集群规模等级,反之则判定所述集群规模为第二集群规模等级;
63、比较所述当前存储集群内的数据量和预设数据阈值;
64、若所述当前存储集群内的节点数量超过预设节点阈值,则判定所述数据规模为第一数据规模等级,反之则判定所述数据规模为第二数据规模等级。
65、在一些实施例中,所述根据所述集群规模的等级和所述数据规模的等级,设置所述心跳间隔数值,包括:
66、若所述集群规模为第一集群规模等级且所述数据规模等级为第一数据规模等级,则设置所述心跳间隔数值为第一间隔数值;
67、若所述集群规模为第一集群规模等级且所述数据规模等级为第二数据规模等级,则设置所述心跳间隔数值为第二间隔数值;
68、若所述集群规模为第二集群规模等级且所述数据规模等级为第一数据规模等级,则设置所述心跳间隔数值为第三间隔数值;
69、若所述集群规模为第二集群规模等级且所述数据规模等级为第二数据规模等级,则设置所述心跳间隔数值为第四间隔数值。
70、在一些实施例中,所述方法还包括:
71、提供动态断路器阈值设置接口以便用户对各个断路器阈值进行自定义设置,所述动态断路器阈值设置接口包括总预设熔断阈值设置接口、第一断路器阈值设置接口、第二断路器阈值设置接口、第三断路器阈值设置接口以及第四断路器阈值设置接口;
72、所述动态断路器阈值设置接口响应于用户的设置操作并将设置好的动态断路器阈值存储至所述缓存资源记录表中。
73、在一些实施例中,所述监控当前存储集群内的总缓存区域对应的第一当前使用资源和多个缓存分区域对应的第二当前使用资源之前,所述方法还包括:
74、响应于检测到的存储至所述缓存资源记录表中的动态断路器阈值,启动所述动态断路器的开关并关闭所述当前存储集群内的默认运行的静态断路器开关。
75、第二方面,本技术提供一种资源管理系统,所述系统包括:
76、数据监控模块,用于响应于动态断路器生效,监控当前存储集群内的总缓存区域对应的第一当前使用资源和多个缓存分区域对应的第二当前使用资源;
77、数据处理模块,用于响应于任务的下发,根据所述任务到达的目标缓存分区域的类型,调用与所述目标缓存分区域匹配的缓存控制策略;
78、所述数据处理模块,还用于根据调用的所述目标缓存区域匹配的所述缓存控制策略、监控到的所述总缓存区域对应的第一当前使用资源、所述目标缓存分区域对应的第二当前使用资源以及所述任务对应的预计消耗资源,评估所述任务的执行状态;
79、资源管理模块,用于响应于所述任务的执行状态为放行状态,调用所述目标缓存分区域内的资源以执行所述任务。
80、第三方面,本技术提供了一种电子设备,所述电子设备包括:
81、一个或多个处理器;
82、以及与所述一个或多个处理器关联的存储器,所述存储器用于存储程序指令,所述程序指令在被所述一个或多个处理器读取执行时,执行如下操作:
83、响应于动态断路器开关的启动,监控当前存储集群内的总缓存区域对应的第一当前使用资源和多个缓存分区域对应的第二当前使用资源;
84、响应于任务的下发,根据所述任务到达的目标缓存分区域的类型,调用与所述目标缓存分区域匹配的缓存控制策略;
85、根据调用的所述目标缓存区域匹配的所述缓存控制策略、监控到的所述总缓存区域对应的第一当前使用资源、所述目标缓存分区域对应的第二当前使用资源以及所述任务对应的预计消耗资源,评估所述任务的执行状态;
86、响应于所述任务的执行状态为放行状态,则调用所述目标缓存分区域内的资源以执行所述任务。
87、第四方面,本技术还提供了一种计算机可读存储介质,所述存储介质上存储计算机程序,所述计算机程序使得计算机执行如下操作:
88、响应于动态断路器开关的启动,监控当前存储集群内的总缓存区域对应的第一当前使用资源和多个缓存分区域对应的第二当前使用资源;
89、响应于任务的下发,根据所述任务到达的目标缓存分区域的类型,调用与所述目标缓存分区域匹配的缓存控制策略;
90、根据调用的所述目标缓存区域匹配的所述缓存控制策略、监控到的所述总缓存区域对应的第一当前使用资源、所述目标缓存分区域对应的第二当前使用资源以及所述任务对应的预计消耗资源,评估所述任务的执行状态;
91、响应于所述任务的执行状态为放行状态,则调用所述目标缓存分区域内的资源以执行所述任务。
92、本技术实现的有益效果为:
93、本技术提供了一种资源配置方法,包括响应于动态断路器开关的启动,监控当前存储集群内的总缓存区域对应的第一当前使用资源和多个缓存分区域对应的第二当前使用资源;响应于任务的下发,根据所述任务到达的目标缓存分区域的类型,调用与所述目标缓存分区域匹配的缓存控制策略;根据调用的所述目标缓存区域匹配的所述缓存控制策略、监控到的所述总缓存区域对应的第一当前使用资源、所述目标缓存分区域对应的第二当前使用资源以及所述任务对应的预计消耗资源,评估所述任务的执行状态;响应于所述任务的执行状态为放行状态,则调用所述目标缓存分区域内的资源以执行所述任务。通过一系列资源管理,使得原有的静态断路保护机制更加的灵活有效,减少可运行任务无效熔断的场景,保护集群检索任务高效有效的运行并提高集群的稳定性和可靠性。