分布式缓存控制方法及装置与流程

文档序号:17148570发布日期:2019-03-19 23:12阅读:192来源:国知局
分布式缓存控制方法及装置与流程

本发明实施例涉及计算机技术,尤其涉及一种分布式缓存控制方法及装置。



背景技术:

随着计算机技术的发展和广泛使用,高速缓冲存储器(cache)已经大规模的应用于集群系统的缓存功能中,尤其是分布式cache集群的发展应用,在很大程度上提高了数据缓存的速度和效率。

随着集群系统中数据流量的增长,以及分布式cache集群规模的扩大,管理控制集群系统中分布式缓存节点的资源分配成为优化系统资源的重要因素;举例来说,目前使用高性能分布式内存对象缓存系统(Memcached)的集群,例如社交网络服务网站(Facebook),进行集群优化管理的方式通常包括:减少存储数据时延;通过评估负载对高速缓存缺失(cache miss)的影响来调整集群部署方式,具体地,分析内存cache、内存置换算法(Replacement Algorithm)与cache miss的关系,提供更有效率的开发算法(Render Algorithm);或者通过制定预定义步长来改变cache的大小进行配置资源的优化。

但是,现有技术对集群系统的管理方式,通常仅通过监测集群系统的资源利用情况,来制定优化该集群系统资源分配的策略。



技术实现要素:

本发明实施例提供一种分布式缓存控制方法及装置,通过监测用户对集群系统服务质量(Quality of Service,简称为:Qos)的满意程度,对集群系统的资源执行相应的调整策略。

第一方面,本发明实施例提供一种分布式缓存控制方法,包括:

收集集群系统中缓存节点的客户端统计信息;

根据所述客户端统计信息计算用户的平均期望值;

根据所述用户的平均期望值和期望阈值确定对所述集群系统的资源调整方式;

根据所述已确定的资源调整方式对所述集群系统中的缓存节点执行节点收缩操作或者节点扩展操作。

在第一方面的第一种可能的实现方式中,所述根据所述用户期望值和期望阈值确定对所述集群系统的资源调整方式,包括:

在所述用户的平均期望值大于第一期望阈值时,确定对所述集群系统执行所述节点收缩操作;或者,

在所述用户的平均期望值小于第二期望阈值时,确定对所述集群系统执行所述节点扩展操作。

根据第一方面或第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述客户端统计信息包括所述集群数据访存响应时间、集群缓存命中率和集群数据吞吐量;

则所述根据所述客户端统计信息计算用户的平均期望值,包括:

根据所述集群数据访存响应时间、所述集群缓存命中率和所述集群数据吞吐量,计算出所述用户对各缓存节点的期望值为:

En=λ1*Ti_response+λ2*Ri_cachehit+λ3*THi_data;

其中,所述Ti_response表示缓存节点i的数据访存响应时间,所述Ri_cachehit表示所述缓存节点i的缓存命中率,所述THi_data表示所述缓存节点i的数据吞吐量,所述λ1、λ2和λ3表示权值;

根据所述用户对各缓存节点的期望值计算所述用户的平均期望值

根据第一方面的第二种可能的实现方式,在第三种可能的实现方式中,所述根据所述用户的平均期望值和期望阈值确定对所述集群系统的资源调整方式之前,还包括:

收集所述集群系统中缓存节点的资源利用信息;

则所述根据所述用户的平均期望值和期望阈值确定对所述集群系统的资源调整方式,包括:

根据收集的所述缓存节点的资源利用信息和所述客户端统计信息获取所述用户对各缓存节点的期望值与所述缓存节点的资源利用信息的关系曲线;

根据所述用户对各缓存节点的期望值和所述期望阈值,以及所述关系曲线确定对所述集群系统中各缓存节点的资源调整方式;

则所述根据所述已确定的资源调整方式对所述集群系统中的缓存节点执行节点收缩操作或者节点扩展操作,包括:

根据所述已确定的资源调整方式和所述缓存节点的资源利用信息对所述集群系统中各缓存节点分别进行资源调整。

根据第一方面的第三种可能的实现方式,在第四种可能的实现方式中,所述缓存节点的资源利用信息包括所述缓存节点的硬件参数、操作系统参数,和所述缓存节点在所述集群系统中的配置参数,所述操作系统参数用于计算所述缓存节点的负载值;

则所述根据收集的所述缓存节点的资源利用信息和所述客户端统计信息获取所述用户对各缓存节点的期望值与所述缓存节点的资源利用信息的关系曲线,包括:

根据所述缓存节点的硬件参数、所述缓存节点的负载值和所述缓存节点在所述集群系统中的配置参数,以及所述客户端统计信息,获取所述用户对各缓存节点的期望值根据所述缓存节点的硬件参数、所述缓存节点的负载值、和所述缓存节点在所述集群系统中的配置参数的关系曲线为:

En=f(Xn,Yn,Zn);

其中,所述Xn表示所述缓存节点的硬件参数,所述Yn表示所述缓存节点的负载值,所述Zn表示所述缓存节点在所述集群系统中的配置参数;

则所述根据所述用户对各缓存节点的期望值和所述期望阈值、以及所述关系曲线确定对所述集群系统中各缓存节点的资源调整方式,包括:

在所述En大于所述第一期望阈值或小于所述第二期望阈值时,确定通过改变所述Xn、所述Yn和所述Zn中至少一项对所述集群系统中各缓存节点进行资源调整,使得所述调整后的En小于所述第一期望阈值并大于所述第二期望阈值。

根据第一方面的第四种可能的实现方式,在第五种可能的实现方式中,还包括:根据所述缓存节点的负载值计算所述集群系统的当前平均负载值;

确定所述小于所述第一期望阈值并且大于所述第二期望阈值时,根据所述集群系统的当前平均负载值和负载阈值确定对所述集群系统的资源调整方式。

根据第一方面的第五种可能的实现方式,在第六种可能的实现方式中,所述根据所述集群系统的当前平均负载值和负载阈值确定对所述集群系统的资源调整方式,包括:

在所述集群系统的当前平均负载值大于第一负载阈值时,确定对所述集群系统执行所述节点扩展操作;或者,

在所述集群系统的当前平均负载值小于第二负载阈值时,确定对所述集群系统执行所述节点收缩操作。

第二方面,本发明实施例提供一种分布式缓存控制装置,包括:

收集模块,用于收集集群系统中缓存节点的客户端统计信息;

计算模块,用于根据所述收集模块收集的客户端统计信息计算用户的平均期望值;

决策模块,用于根据所述计算模块得到的用户的平均期望值,与期望阈值确定对所述集群系统的资源调整方式;

执行模块,用于根据所述决策模块确定的资源调整方式对所述集群系统中的缓存节点执行节点收缩操作或者节点扩展操作。

在第二方面的第一种可能的实现方式中,所述决策模块,具体用于在所述用户的平均期望值大于第一期望阈值时,确定对所述集群系统执行所述节点收缩操作;或者,在所述用户的平均期望值小于第二期望阈值时,确定对所述集群系统执行所述节点扩展操作。

根据第二方面或第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述客户端统计信息包括所述集群数据访存响应时间、集群缓存命中率和集群数据吞吐量;

则所述计算模块,具体用于根据所述集群数据访存响应时间、所述集群缓存命中率和所述集群数据吞吐量,计算出所述用户对各缓存节点的期望值为:

En=λ1*Ti_response+λ2*Ri_cachehit+λ3*THi_data;

其中,所述Ti_response表示缓存节点i的数据访存响应时间,所述Ri_cachehit表示所述缓存节点i的缓存命中率,所述THi_data表示所述缓存节点i的数据吞吐量,所述λ1、λ2和λ3表示权值;进而根据所述用户对各缓存节点的期望值计算所述用户的平均期望值

根据第二方面的第二种可能的实现方式,在第三种可能的实现方式中,所述收集模块,还用于在所述决策模块确定对所述集群系统的资源调整方式之前,收集所述集群系统中缓存节点的资源利用信息;

则所述决策模块,包括:获取单元,用于根据所述收集模块收集的所述缓存节点的资源利用信息和所述客户端统计信息获取所述用户对各缓存节点的期望值与所述缓存节点的资源利用信息的关系曲线;

确定单元,用于根据所述用户对各缓存节点的期望值和所述期望阈值,以及所述获取单元获取的关系曲线确定对所述集群系统中各缓存节点的资源调整方式;

则所述执行模块,具体用于根据所述确定单元确定的资源调整方式和所述收集模块收集的缓存节点的资源利用信息对所述集群系统中各缓存节点分别进行资源调整。

根据第二方面的第三种可能的实现方式,在第四种可能的实现方式中,所述缓存节点的资源利用信息包括所述缓存节点的硬件参数、操作系统参数,和所述缓存节点在所述集群系统中的配置参数,所述操作系统参数用于计算所述缓存节点的负载值;

则所述获取单元,具体用于根据所述缓存节点的硬件参数、所述缓存节点的负载值和所述缓存节点在所述集群系统中的配置参数,以及所述客户端统计信息,获取所述用户对各缓存节点的期望值根据所述缓存节点的硬件参数、所述缓存节点的负载值、和所述缓存节点在所述集群系统中的配置参数的关系曲线为:

En=f(Xn,Yn,Zn);

其中,所述Xn表示所述缓存节点的硬件参数,所述Yn表示所述缓存节点的负载值,所述Zn表示所述缓存节点在所述集群系统中的配置参数;

则所述确定单元,具体用于在所述En大于所述第一期望阈值或小于所述第二期望阈值时,确定通过改变所述Xn、所述Yn和所述Zn中至少一项对所述集群系统中各缓存节点进行资源调整,使得所述调整后的En小于所述第一期望阈值并大于所述第二期望阈值。

根据第二方面的第四种可能的实现方式,在第五种可能的实现方式中,所述计算模块,还用于根据所述缓存节点的负载值计算所述集群系统的当前平均负载值;

则所述决策模块,还用于在判断得出所述小于所述第一期望阈值并且大于所述第二期望阈值时,根据所述集群系统的当前平均负载值和负载阈值确定对所述集群系统的资源调整方式。

根据第二方面的第五种可能的实现方式,在第六种可能的实现方式中,所述决策模块根据所述集群系统的当前平均负载值和负载阈值确定对所述集群系统的资源调整方式,具体包括:在所述集群系统的当前平均负载值大于第一负载阈值时,确定对所述集群系统执行所述节点扩展操作;或者,在所述集群系统的当前平均负载值小于第二负载阈值时,确定对所述集群系统执行所述节点收缩操作。

本发明实施例所提供的分布式缓存控制方法及装置,通过对集群系统中各缓存节点的客户端统计信息的收集,以获取用户对该系统的平均期望值,并根据该平均期望值与期望阈值的对比确定该集群系统的资源调整方案,以实现对系统中缓存节点执行相应的节点收缩或节点扩展操作,本实施例通过监测用户对集群系统Qos的满意程度,对集群系统的资源执行相应的调整策略,提高了客户端的服务质量。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例一所提供的一种分布式缓存控制方法的流程图;

图2为图1所示实施例提供的一种集群系统的结构示意图;

图3为本发明实施例二所提供的一种分布式缓存控制方法的流程图;

图4为本发明实施例三所提供的一种分布式缓存控制方法的流程图;

图5为本发明实施例四所提供的一种分布式缓存控制装置的结构示意图;

图6为本发明实施例五所提供的一种分布式缓存控制装置的结构示意图:

图7为本发明实施例六所提供的一种集群控制服务器的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例一

图1为本发明实施例一所提供的一种分布式缓存控制方法的流程图。本实施例的方法适用于在集群系统中控制缓存节点分配资源的情况。该方法可由分布式缓存控制装置或集群控制服务器执行,该分布式缓存控制装置或集群控制服务器通常以硬件和/或软件的方式来实现,可以集成在该服务器的存储器中,例如集成在处理器芯片中,供处理器调用执行。本实施例的方法包括如下步骤:

S110,收集集群系统中缓存节点的客户端统计信息。

集群系统中包括多台互连的计算机,通常可以组成是分布式系统,由一台集群控制服务器控制与其连接的多台客户机,客户机在以下实施例中可以称为缓存节点,该集群系统中的数据处理通常采用分布式cache集群技术,本实施例以目前通常使用的Memcached集群技术为例予以说明,如图2所示,为图1所示实施例提供的一种集群系统的结构示意图,集群控制服务器与n个缓存节点连接,该缓存节点例如是Memcached服务器1到Memcached服务器n,每个缓存节点都是一台独立的客户机,包括服务器和存储器,并且该n个缓存节点都与应用服务器连接,该应用服务器为各缓冲节点提供应用程序。本实施例及以下各实施例中的执行主体均为集群控制服务器,该服务器收集与其连接的各缓冲节点的客户端统计信息,客户端统计信息可以为客户端的用户行为感知,通常基于对用户对Qos的满意度调查,具体地,可以在预置的一段时间窗口中收集该客户端统计信息,为本实施例提供的控制方法提供基础信息。

S120,根据该客户端统计信息计算用户的平均期望值。

在本实施例中,收集的客户端统计信息是与集群控制服务器连接的每个缓存节点的信息,每个缓存节点的硬件资源和系统配置可以是不同的,也可以是相同的,因此,用户对每个缓存的Qos的满意度也可能是不同的;在具体实现中,可以通过用户对各缓冲节点的期望值的计算用户的平均期望值,以获取用户对该集群系统整体Qos的综合评价,例如根据收集的客户端统计信息,运用运筹学的最优化理论算法得到用户对该集群系统的平均期望值。

S130,根据用户的平均期望值和期望阈值确定对该集群系统的资源调整方式。

目前,对集群系统中资源分配和调整的常规方式包括:减少存储数据时延,通过评估负载对cache miss的影响来调整集群部署方式,或者通过制定预定义步长来改变cache的大小进行资源调整;显然地,现有技术通常采用单一的分析判断规则进行资源调整的依据,集群系统中数据缓存的误码率较高,并且都根据缓存节点本身的资源监控来进行资源的控制管理,并不能体现用户对各缓存节点的Qos的满意程度。在本实施例中,根据用户对Qos的需求确定该集群系统的资源调整,例如可以预设期望阈值,并通过该期望阈值与用户的平均期望值的比较决策资源调整的方案。

举例来说,决策资源调整的具体方式可以为:在用户的平均期望值大于第一期望阈值时,确定对该集群系统执行节点收缩操作;或者,在用户的平均期望值小于第二期望阈值时,确定对该集群系统执行节点扩展操作。需要说明的是,第一期望阈值与第二期望阈值为期望阈值范围,在计算出的平均期望阈值超出该范围时,就需要对集群系统的资源进行相应的调整策略;一方面,平均期望值高于该范围时,用户对该集群系统中缓存节点的Qos的满意程度较高,即说明集群系统的当前资源配置消耗的成本较高,因此,可以关闭该系统中部分缓存节点以降低系统资源的消耗,另一方面,平均期望值低于该范围时,用户对该集群系统中缓存节点的Qos的满意程度较低,即说明集群系统的当前资源配置不能满足用户的需求,因此,可以增加系统中缓存节点的数量以提高用户满意程度和系统使用效率。

需要说明的是,本实施例中用户的平均期望值在期望阈值的范围内时,说明用户对Qos的满意程度达到预期的要求,不需要对集群系统的资源进行调整,可以重新开始执行S110,继续收集集群系统中缓存节点的客户端统计信息,本实施例提供的分布式缓存控制方法可以是循环执行的。

S140,根据已确定的资源调整方式对该集群系统中的缓存节点执行节点收缩操作或者节点扩展操作。

在本实施例中,上述已通过用户的平均期望值和期望阈值的对比,对集群系统的资源做出调整策略,在具体实现中,可以按照上述策略的指示通过操作指令对该集群系统中的各缓存节点执行收缩或扩展操作,该操作的执行是与上述资源调整的策略相对应的,例如改变集群系统中缓存节点数量。

本实施例所提供的分布式缓存控制方法,通过收集集群系统中各缓存节点的客户端统计信息,以获取用户对该系统的平均期望值,并根据该平均期望值与期望阈值的对比确定该集群系统的资源调整方案,以实现对系统中缓存节点执行相应的节点收缩或节点扩展操作,本实施例通过监测用户对集群系统Qos的满意程度,对集群系统的资源执行相应的调整策略,提高了客户端的服务质量;进一步地,通过对用户的平均期望值的监测动态调整该集群系统的资源利用,在保证用户对集群系统Qos在预期要求的情况下尽可能的降低系统资源的消耗,还相应地提高了系统资源的使用效率。

实施例二

图3为本发明实施例二所提供的一种分布式缓存控制方法的流程图。如图3所示,本实施例提供的方法包括如下步骤:

S210,收集集群系统中缓存节点的客户端统计信息。

具体地,S210的具体实现方式参照实施例一中的S110。

S220,收集该集群系统中缓存节点的资源利用信息。

在本实施例中,不仅可以收集集群系统中各缓存节点的客户端统计信息,用于获取用户对Qos的满意程度,还可以收集各缓存节点的资源利用信息,从集群系统中各缓存节点自身的资源利用上进行监控,例如缓存节点的资源利用信息可以包括中央处理器(Central Processing Unit,简称为:CPU)、内存和网络输入/输出(Input/Output,简称为:IO)利用率,本实施例从集群系统的资源监控和用户感知两方面进行监测,以提供一种高性能的分布式缓存控制方案。

需要说明的是,本实施例中S220与S210没有明确的先后顺序,本实施例以S220在S210之后执行予以示出。

在具体实现中,对缓存节点的客户端统计信息和资源利用信息的收集可以通过代码指令的方式实现,举例来说,本实施例提供的收集资源信息的代码具体为:

struct memcached_stats{//定义统计信息数据结构

int requests;

//memcached用户命令操作方式

int gets;

int multigets;

int sets;

int adds;

int replaces;

int deletes;

int hits;

int misses;

struct stat response_time;

struct stat get_size;

struct timeval last_time;

};

void printGlobalStats(struct config*config){

pthread_mutex_lock(&stats_lock);

struct timeval currentTime;

gettimeofday(&currentTime,NULL);

//定义metric指标计算公式

double timeDiff=currentTime.tv_sec-global_stats.last_time.tv_sec+1e-6*(currentTime.tv_sec-global_stats.last_time.tv_sec);

double rps=global_stats.requests/timeDiff;

double std=getStdDev(&global_stats.response_time);

}

S230,根据收集的缓存节点的资源利用信息和客户端统计信息获取用户对各缓存节点的期望值与该缓存节点的资源利用信息的关系曲线。

在本实施例中,缓存节点的资源利用信息例如可以包括该缓存节点的硬件参数(Hardware Parameter)、操作系统参数(Operating System Parameter),和各缓存节点在该集群系统中的配置参数(Memcached Configuration Parameter),具体地,操作系统参数代表缓存节点的工作状态,即为节点的利用率,用于计算该缓存节点的负载值,可以通过上述CPU、内存和网络IO表示。

举例来说,定义Xn为缓存节点的硬件参数的特征值,代表缓存节点当前所在集群系统内分布式缓存节点的总数,因此,Xn的取值代表集群系统当前是由多少个缓存节点构成的,其资源划分是通过系统中配置文件实现的。

定义Yn为缓存节点的操作系统参数的特征值,代表各缓存节点的工作状态,本实施例以包括CPU、内存,网络IO利用率为例予以说明,因此,Yn的取值对应不同缓存节点的工作状态,其值是缓存节点的资源利用率,通过Yn可以实现负载均衡的动态调节,缓存节点的负载值可以表示为:

上述(1)中,CPUi,MEMi,NETi分别表示第i个缓存节点的CPU、内存和网络IO的利用率,其中,α、β和χ为权值;Yn具体为第i个缓存节点的负载值。

定义Zn为缓存节点在该集群系统中配置参数的特征值,代表缓存节点中不同的Memcached的参数设置,因此,Zn的取值对应不同缓存节点的Memcached的运行参数,其参数由Memcached命令行或配置文件设定,Zn具体可以表示为:

Zn∈{Conf1,Conf2,...,Confi,...,Confn}, (2)

上述(2)中,Confi是第i个缓存节点的Memcached参数配置文件ID,(2)式表示该集群系统中各缓存节点的配置文件集合。

需要说明的是,在初次执行Memcached集群应用程序时,可以使用默认的Memcached的配置文件运行。

在具体实现中,本实施例中获取的用户对各缓存节点的期望值根据缓存节点的硬件参数、缓存节点的负载值和缓存节点在该集群系统中的配置参数的对应关系可以用函数形式表示为:

En=f(Xn,Yn,Zn), (3)

上述(3)表示的函数关系式,可以通过长期监控历史经验数据的收集获取,例如可以采用函数逼近算法,获得En随Xn、Yn和Zn的变化曲线。

S240,根据用户对各缓存节点的期望值和期望阈值,以及该关系曲线确定对该集群系统中各缓存节点的资源调整方式。

在本实施例中,对于每个缓存节点来说,已获得用户对各缓存节点的期望值随着对应的Xn、Yn和Zn的变化曲线,即已知Xn、Yn或Zn的变化对En的影响,因此,可以根据该En和期望阈值的对比,确定出对该集群系统中各缓存节点的资源调整策略,使得调整后的En在期望阈值的范围内。

具体地,在En大于第一期望阈值或小于第二期望阈值时,确定通过改变Xn、Yn和Zn中至少一项对该集群系统中各缓存节点进行资源调整,使得调整后的En小于该第一期望阈值并大于该第二期望阈值。需要说明的是,本实施例提供的分布式缓存控制方法,分别对集群系统中各缓存节点进行资源调整策略的制定,使得用户对每个缓存节点Qos的满意程度都可以达到预期值要求。

S250,根据已确定的资源调整方式和缓存节点的资源利用信息对该集群系统中各缓存节点分别进行资源调整。

与上述实施例一不同的,本实施例具体对集群系统中每个缓冲节点的资源利用分别进行资源调整,不同于上述实施例中对集群系统的整体资源进行调整;具体地,对于用户对部分缓冲节点的期望值在期望阈值范围内的节点来说,不需要进行资源调整,对于用户对部分缓冲节点的期望值超出期望阈值范围的节点来说,可以通过上述(3)的对应关系分别对缓冲节点的资源进行重新分配,例如关闭或开启部分缓存节点的CPU使用率,调整内存中用于缓冲功能的比例,限制网络的使用带宽等,因此,本实施例提供的方法仅需要对用户满意程度没有达到预期效果的缓存节点执行资源调整,节省了集群系统进行资源调整的成本,降低了集群系统的误码率,并且增加了资源调整方案的灵活性。

本实施例所提供的分布式缓存控制方法,通过收集集群系统中各缓存节点的客户端统计信息和资源利用信息,并获取用户对各缓存节点的期望值与对应的缓存节点的资源利用信息的关系,根据用户对各缓存节点的期望值与期望阈值的对比确定对该集群系统中缓存节点的资源调整方案,以实现具体对集群系统中用户满意程度未达到预期效果的缓存节点进行资源调整,本实施例结合用户对缓存节点Qos的满意程度和对应节点的资源利用信息,分别对集群系统中缓存节点进行资源调整的方式,有利于降低集群系统的误码率;进一步地,本实施例提供的分布式缓存控制方法,仅需要对用户满意程度没有达到预期效果的缓存节点执行资源调整,节省了集群系统进行资源调整的成本,并且增加了资源调整方案的灵活性。

实施例三

图4为本发明实施例三所提供的一种分布式缓存控制方法的流程图。如图4所示,本实施例提供的方法包括如下步骤:

S310,收集集群系统中缓存节点的客户端统计信息。

S320,根据该客户端统计信息计算用户的平均期望值。

具体地,S310~S320的具体实现方式参照实施例一中的S110~S120。

本实施例中收集的客户端统计信息可以包括集群数据访存响应时间(Cluster Date Access Response Time)、集群缓存命中率(Cache Hit Rate)和集群数据吞吐量(Cluster Date Throughput Rate);则S320具体包括:根据该集群数据访存响应时间、该集群缓存命中率和该集群数据吞吐量,计算出用户对各缓存节点的期望值为:

En=λ1*Ti_response+λ2*Ri_cachehit+λ3*THi_data; (4)

上述(4)式中,Ti_response表示缓存节点i的数据访存响应时间,Ri_cachehit表示缓存节点i的缓存命中率,THi_data表示缓存节点i的数据吞吐量,λ1、λ2和λ3表示权值;进而根据用户对各缓存节点的期望值计算该用户的平均期望值

S330,收集该集群系统中缓存节点的资源利用信息,该缓存节点的资源利用信息同样可以包括该缓存节点的硬件参数、操作系统参数,和各缓存节点在该集群系统中的配置参数,该操作系统参数用于计算缓存节点的负载值。

具体地,S330的具体实现方式参照实施例一中的S220。

需要说明的是,本实施例中S330与S310~S320没有明确的现有顺序,本实施例以S330在S310~S320之后执行予以示出。

S340,计算各缓存节点的负载值,并根据各缓存节点的负载值计算该集群系统的当前平均负载值。

S350,判断是否小于第一期望阈值并且大于第二期望阈值;若否,则执行S360;若是,则执行S370。

S360,根据和期望阈值确定对集群系统的资源调整方式。

具体地,S360的具体实现方式参照实施例一中的S130。

S370,根据集群系统的当前平均负载值和负载阈值确定对集群系统的资源调整方式。

在本实施例中,用户对Qos的满意程度可以达到预期的要求,并且可以进一步根据集群系统的当前平均负载值与负载阈值的比较决策资源调整的方式;举例来说,决策资源调整的具体方式可以为:在该集群系统的当前平均负载值大于第一负载阈值时,确定对该集群系统执行该节点扩展操作;或者,在该集群系统的当前平均负载值小于第二负载阈值时,确定对该集群系统执行该节点收缩操作。需要说明的是,第一负载阈值与第二负载阈值为负载阈值范围,在计算出的集群系统的当前负载阈值超出该范围时,就需要对集群系统的资源进行相应的调整策略;一方面,当前平均负载值高于该范围时,说明集群系统中各缓存节点的当前负载较高,因此,可以通过增加系统中缓存节点的数量以降低系统负荷;另一方面,当前平均负载值低于该范围时,说明该集群系统中各缓存节点的负载并未饱和,因此,可以通过关闭系统中部分缓存节点以降低系统资源的消耗。

需要说明的是,本实施例中集群系统的当前平均负载值在负载阈值的范围内时,说明在用户对Qos的满意程度达到预期要求的前提下,集群系统的资源配置也符合负载均衡的原则,不需要对集群系统的资源进行调整,可以重新开始执行S310,继续收集集群系统中缓存节点的客户端统计信息和资源利用信息,本实施例提供的分布式缓存控制方法可以是循环执行的。

S380,根据已确定的资源调整方式对该集群系统中的缓存节点执行节点收缩操作或者节点扩展操作。

在本实施例的另一种实现方式中,根据集群系统的当前平均负载值和负载阈值,对集群系统的资源调整方式的决策还可以为:集群系统中满足的缓存节点组成迁出节点集合,满足的缓存节点组成迁入节点集合,其中,表示该集群系统的当前平均负载值,ε是通过长期历史监测数据得出的预置的比值。

根据当前收集的资源利用信息,若计算得出迁入节点集合远小于迁出节点集合的数量,则确定对该集群系统执行节点扩展操作,将新的缓存节点加入该迁入节点集合中,即Xn的数量增加,并在保障用户服务的条件下,由应用程序后台逐步的进行数据迁移;若计算得出迁入节点集合远大于迁出节点集合的数量,则确定对该集群系统执行节点收缩操作,在具体实现中,可以选取集群系统中负载值Yn较小的缓存节点执行合并操作,即Xn的数量减少,同样在保障用户服务的条件下,由应用程序后台逐步的进行数据迁移。

本实施例所提供的分布式缓存控制方法,通过集群系统中各缓存节点的客户端统计信息和资源利用信息的收集,分别根据用户对该系统的平均期望值和该系统的当前负载均值确定对该集群系统的资源调整方案,以保证客户端的服务质量,更进一步提高了系统资源的使用效率。

需要说明的是,若集群系统的当前资源受成本限制,无法满足用户的平均期望值在期望阈值的范围内进行资源调整,可以通过改变该期望阈值的范围以适应当前集群系统的硬件和软件配置,通常可以改变集群数据访存响应时间、集群缓存命中率或集群数据吞吐量等指标的要求,尤其是集群缓存命中率,直接限制Memcached客户端的用户并发访问量,即直接限制访问请求连接数量,本实施例提供的方法有利于维持集群系统的正常工作状态,并且找到解决资源枯竭的处理方式。

实施例四

图5为本发明实施例四所提供的一种分布式缓存控制装置的结构示意图。如图5所示,本实施例提供的分布式缓存控制装置,具体包括:收集模块11、计算模块12、决策模块13和执行模块14。

其中,收集模块11,用于收集集群系统中缓存节点的客户端统计信息。

计算模块12,用于根据收集模块11收集的客户端统计信息计算用户的平均期望值。

决策模块13,用于根据计算模块12得到的用户的平均期望值,以及期望阈值确定对该集群系统的资源调整方式。

执行模块14,用于根据决策模块13确定的资源调整方式对该集群系统中的缓存节点执行节点收缩操作或者节点扩展操作。

在本实施例中,该决策模块13,具体用于在用户的平均期望值大于第一期望阈值时,确定对该集群系统执行节点收缩操作;或者,在用户的平均期望值小于第二期望阈值时,确定对该集群系统执行节点扩展操作。需要说明的是,第一期望阈值与第二期望阈值为期望阈值范围,在计算出的平均期望阈值超出该范围时,就需要对集群系统的资源进行相应的调整策略;一方面,平均期望值高于该范围时,用户对该集群系统中缓存节点的Qos的满意程度较高,即说明集群系统的当前资源配置消耗的成本较高,因此,可以关闭该系统中部分缓存节点以降低系统资源的消耗,另一方面,平均期望值低于该范围时,用户对该集群系统中缓存节点的Qos的满意程度较低,即说明集群系统的当前资源配置不能满足用户的需求,因此,可以增加系统中缓存节点的数量以提高用户满意程度和系统使用效率。

需要说明的是,本实施例中用户的平均期望值在期望阈值的范围内时,说明用户对Qos的满意程度达到预期的要求,不需要对集群系统的资源进行调整,可以由收集模块11继续执行收集集群系统中缓存节点的客户端统计信息的操作,本实施例提供的分布式缓存控制装置的执行过程可以是循环进行的。

本发明实施例提供的分布式缓存控制装置用于执行本发明实施例一提供的分布式缓存控制方法,具备相应的功能模块,其实现原理和技术效果类似,此处不再赘述。

实施例五

图6为本发明实施例五所提供的一种分布式缓存控制装置的结构示意图。如图6所示,本实施例提供的装置在上述图5所示装置结构的基础上,收集模块11,还用于在决策模块13确定对该集群系统的资源调整方式之前,收集该集群系统中缓存节点的资源利用信息;需要说明的是,本实施例中收集模块11对客户端统计信息和资源利用信息的收集没有明确的先后顺序。

相应地,决策模块13,包括:获取单元15,用于根据收集模块11收集的该缓存节点的资源利用信息和客户端统计信息获取该用户对各缓存节点的期望值与该缓存节点的资源利用信息的关系曲线;确定单元16,用于根据用户对各缓存节点的期望值和期望阈值,以及获取单元15获取的关系曲线确定对该集群系统中各缓存节点的资源调整方式。

在本实施例中,收集模块11收集的缓存节点的资源利用信息可以包括该缓存节点的硬件参数、操作系统参数,和该缓存节点在该集群系统中的配置参数,该操作系统参数用于计算该缓存节点的负载值。在具体实现中,获取单元15,具体用于根据该缓存节点的硬件参数、该缓存节点的负载值和该缓存节点在该集群系统中的配置参数,以及该客户端统计信息,获取用户对各缓存节点的期望值根据该缓存节点的硬件参数、该缓存节点的负载值、和该缓存节点在该集群系统中的配置参数的关系曲线,可以用函数形式表示为上述(3)式,该式可以通过长期监控历史经验数据的收集获取,例如可以采用函数逼近算法,获得En随Xn、Yn和Zn的变化曲线;相应地,确定单元16,具体用于在En大于第一期望阈值或小于第二期望阈值时,确定通过改变Xn、Yn和Zn中至少一项对该集群系统中各缓存节点进行资源调整,使得调整后的En小于第一期望阈值并大于第二期望阈值。

需要说明的是,本实施例提供的分布式缓存控制装置,分别对集群系统中各缓存节点进行资源调整策略的制定,使得用户对每个缓存节点Qos的满意程度都可以达到预期值要求。

在本实施例中,执行模块14,还用于根据确定单元16确定的资源调整方式和收集模块11收集的缓存节点的资源利用信息对该集群系统中各缓存节点分别进行资源调整。

本发明实施例提供的分布式缓存控制装置用于执行本发明实施例二提供的分布式缓存控制方法,具备相应的功能模块,其实现原理和技术效果类似,此处不再赘述。

在本实施例的另一种实现方式中,收集模块11收集的客户端统计信息包括集群数据访存响应时间、集群缓存命中率和集群数据吞吐量;相应地,计算模块12,具体用于根据集群数据访存响应时间、集群缓存命中率和集群数据吞吐量,计算出用户对各缓存节点的期望值为上述(4)式,进而根据用户对各缓存节点的期望值计算该用户的平均期望值

进一步地,由于收集模块11收集到缓存节点的资源利用信息,并且其中的操作系统参数可以用于计算得到该缓存节点的负载值,即计算模块12,还用于根据该缓存节点的负载值计算该集群系统的当前平均负载值;相应地,决策模块13,还用于在判断出小于第一期望阈值并且大于第二期望阈值时,根据集群系统的当前平均负载值和负载阈值确定对该集群系统的资源调整方式;另一方面,在判断出大于第一期望阈值,或者小于第二期望阈值时,则根据和期望阈值确定对集群系统的资源调整方式。

本实施例在具体实现中,决策模块13根据集群系统的当前平均负载值和负载阈值确定对该集群系统的资源调整方式,具体包括:在该集群系统的当前平均负载值大于第一负载阈值时,确定对该集群系统执行节点扩展操作;或者,在该集群系统的当前平均负载值小于第二负载阈值时,确定对集群系统执行该节点收缩操作。第一负载阈值与第二负载阈值为负载阈值范围,在计算出的集群系统的当前负载阈值超出该范围时,就需要对集群系统的资源进行相应的调整策略;一方面,当前平均负载值高于该范围时,说明集群系统中各缓存节点的当前负载较高,因此,可以通过增加系统中缓存节点的数量以降低系统负荷;另一方面,当前平均负载值低于该范围时,说明该集群系统中各缓存节点的负载并未饱和,因此,可以通过关闭系统中部分缓存节点以降低系统资源的消耗。

需要说明的是,本实施例中集群系统的当前平均负载值在负载阈值的范围内时,说明在用户对Qos的满意程度达到预期要求的前提下,集群系统的资源配置也符合负载均衡的原则,不需要对集群系统的资源进行调整,可以由收集模块11继续执行收集集群系统中缓存节点的客户端统计信息和资源利用信息的操作,本实施例提供的分布式缓存控制装置的执行过程可以是循环进行的。

本发明实施例提供的分布式缓存控制装置用于执行本发明实施例三提供的分布式缓存控制方法,具备相应的功能模块,其实现原理和技术效果类似,此处不再赘述。

实施例六

图7为本发明实施例六所提供的一种集群控制服务器的结构示意图。如图7所示,本实施例提供的集群控制服务器,具体包括:收集器21、计算器22和处理器23。

其中,收集器21,用于收集集群系统中缓存节点的客户端统计信息。

计算器22,用于根据收集器21收集的客户端统计信息计算用户的平均期望值。

处理器23,用于根据计算器22得到的用户的平均期望值,以及期望阈值确定对该集群系统的资源调整方式。

处理器23,还用于根据已确定的资源调整方式对该集群系统中的缓存节点执行节点收缩操作或者节点扩展操作。

在本实施例中,处理器23确定对该集群系统的资源调整方式具体为:在用户的平均期望值大于第一期望阈值时,确定对该集群系统执行节点收缩操作;或者,在用户的平均期望值小于第二期望阈值时,确定对该集群系统执行节点扩展操作。需要说明的是,第一期望阈值与第二期望阈值为期望阈值范围,在计算出的平均期望阈值超出该范围时,就需要对集群系统的资源进行相应的调整策略;一方面,平均期望值高于该范围时,用户对该集群系统中缓存节点的Qos的满意程度较高,即说明集群系统的当前资源配置消耗的成本较高,因此,可以关闭该系统中部分缓存节点以降低系统资源的消耗,另一方面,平均期望值低于该范围时,用户对该集群系统中缓存节点的Qos的满意程度较低,即说明集群系统的当前资源配置不能满足用户的需求,因此,可以增加系统中缓存节点的数量以提高用户满意程度和系统使用效率。

需要说明的是,本实施例中用户的平均期望值在期望阈值的范围内时,说明用户对Qos的满意程度达到预期的要求,不需要对集群系统的资源进行调整,可以由收集器21继续执行收集集群系统中缓存节点的客户端统计信息的操作,本实施例提供的集群控制服务器的执行过程可以是循环进行的。

本发明实施例提供的集群控制服务器用于执行本发明实施例一提供的分布式缓存控制方法,具备相应的实体装置,其实现原理和技术效果类似,此处不再赘述。

实施例七

如图7所示,也为本发明实施例七所提供的一种集群控制服务器的结构示意图。在本实施例中,收集器21还用于在处理器23确定对该集群系统的资源调整方式之前,收集该集群系统中缓存节点的资源利用信息;需要说明的是,本实施例中收集器21对客户端统计信息和资源利用信息的收集没有明确的先后顺序。

相应地,处理器23确定对该集群系统的资源调整方式具体可以为:根据收集器21收集的该缓存节点的资源利用信息和客户端统计信息获取该用户对各缓存节点的期望值与该缓存节点的资源利用信息的关系曲线;并根据用户对各缓存节点的期望值、期望阈值和已获取的关系曲线确定对该集群系统中各缓存节点的资源调整方式。

在本实施例中,收集器21收集的缓存节点的资源利用信息可以包括该缓存节点的硬件参数、操作系统参数,和该缓存节点在该集群系统中的配置参数,该操作系统参数用于计算该缓存节点的负载值。在具体实现中,处理器23获取用户对各缓存节点的期望值与该缓存节点的资源利用信息的关系曲线的方式,具体可以为:根据该缓存节点的硬件参数、该缓存节点的负载值和该缓存节点在该集群系统中的配置参数,以及该客户端统计信息,获取用户对各缓存节点的期望值根据该缓存节点的硬件参数、该缓存节点的负载值、和该缓存节点在该集群系统中的配置参数的关系曲线,可以用函数形式表示为上述(3)式,该式可以通过长期监控历史经验数据的收集获取,例如可以采用函数逼近算法,获得En随Xn、Yn和Zn的变化曲线;相应地,处理器23确定对该集群系统中各缓存节点的资源调整方式,具体可以为:在En大于第一期望阈值或小于第二期望阈值时,确定通过改变Xn、Yn和Zn中至少一项对该集群系统中各缓存节点进行资源调整,使得调整后的En小于第一期望阈值并大于第二期望阈值。

需要说明的是,本实施例提供的集群控制服务器,分别对集群系统中各缓存节点进行资源调整策略的制定,使得用户对每个缓存节点Qos的满意程度都可以达到预期值要求。

在本实施例中,处理器23,还用于根据已确定的资源调整方式和收集器21收集的缓存节点的资源利用信息对该集群系统中各缓存节点分别进行资源调整。

本发明实施例提供的集群控制服务器用于执行本发明实施例二提供的分布式缓存控制方法,具备相应的实体装置,其实现原理和技术效果类似,此处不再赘述。

在本实施例的另一种实现方式中,收集器21收集的客户端统计信息包括集群数据访存响应时间、集群缓存命中率和集群数据吞吐量;相应地,计算器22,具体用于根据集群数据访存响应时间、集群缓存命中率和集群数据吞吐量,计算出用户对各缓存节点的期望值为上述(4)式,进而根据用户对各缓存节点的期望值计算该用户的平均期望值

进一步地,由于收集器21收集到缓存节点的资源利用信息,并且其中的操作系统参数可以用于计算得到该缓存节点的负载值,即计算器22,还用于根据该缓存节点的负载值计算该集群系统的当前平均负载值;相应地,处理器23,还用于在判断出小于第一期望阈值并且大于第二期望阈值时,根据集群系统的当前平均负载值和负载阈值确定对该集群系统的资源调整方式;另一方面,在判断出大于第一期望阈值,或者小于第二期望阈值时,则根据和期望阈值确定对集群系统的资源调整方式。

本实施例在具体实现中,处理器23根据集群系统的当前平均负载值和负载阈值确定对该集群系统的资源调整方式,具体包括:在该集群系统的当前平均负载值大于第一负载阈值时,确定对该集群系统执行节点扩展操作;或者,在该集群系统的当前平均负载值小于第二负载阈值时,确定对集群系统执行该节点收缩操作。第一负载阈值与第二负载阈值为负载阈值范围,在计算出的集群系统的当前负载阈值超出该范围时,就需要对集群系统的资源进行相应的调整策略;一方面,当前平均负载值高于该范围时,说明集群系统中各缓存节点的当前负载较高,因此,可以通过增加系统中缓存节点的数量以降低系统负荷;另一方面,当前平均负载值低于该范围时,说明该集群系统中各缓存节点的负载并未饱和,因此,可以通过关闭系统中部分缓存节点以降低系统资源的消耗。

需要说明的是,本实施例中集群系统的当前平均负载值在负载阈值的范围内时,说明在用户对Qos的满意程度达到预期要求的前提下,集群系统的资源配置也符合负载均衡的原则,不需要对集群系统的资源进行调整,可以由收集器21继续执行收集集群系统中缓存节点的客户端统计信息和资源利用信息的操作,本实施例提供的集群控制服务器的执行过程可以是循环进行的。

本发明实施例提供的集群控制服务器用于执行本发明实施例三提供的分布式缓存控制方法,具备相应的实体装置,其实现原理和技术效果类似,此处不再赘述。

本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1