一种分布式缓存服务器集群的性能优化方法与流程

文档序号:16631513发布日期:2019-01-16 06:37阅读:365来源:国知局
本发明属于分布式缓存
技术领域
:,尤其涉及一种分布式缓存服务器集群的性能优化方法。
背景技术
::随着大数据时代的到来,分布式缓存技术在各个领域的应用越来越广泛,它具有读写速度快,扩展速度快,支持并发和快速响应等优势。分布式缓存系统的代表memcached具有高性能、分布式等特点,它通过在内存中缓存数据和对象来减少读取数据库的次数,提高缓存的访问速度。memcached的主要特征是它的分布式结构,可以通过在多台服务器上安装memcached来搭建一个缓存服务器集群,然后通过一致性哈希算法来分散存储。一致性哈希算法(consistenthash)最早由davidkarger等人提出,当时主要是为了应对互联网中的热点(hotpot)而设计,一致性哈希解决了简单哈希算法在分布式哈希表(distributedhashtable,dht)中存在的动态伸缩等问题。然而,传统的一致性哈希算法在分布式缓存系统memcached服务器集群上的应用存在一些缺点:1.当物理缓存服务器的数量较少时,在缓存数据的过程中会普遍造成缓存服务器负载失衡的问题,进而也会影响整个服务器集群的性能发挥。2.当物理缓存服务器宕机时,该物理缓存服务器上缓存的数据将无法提供给各客户端进行查找访问,同时还影响服务器集群里的其他服务器,从而影响了整体服务器的性能,加大了对数据库的访问压力。技术实现要素:本发明的目的在于提出一种分布式缓存服务器集群的性能优化方法,以解决分布式缓存服务器集群的负载均衡问题,同时提高分布式缓存服务器集群的整体性能。本发明为了实现上述目的,采用如下技术方案:一种分布式缓存服务器集群的性能优化方法,包括如下步骤:s1.为分布式缓存服务器集群中的物理缓存服务器生成虚拟缓存服务器;s2.将虚拟缓存服务器的某一特征值通过哈希函数h1映射到环结构上的某一点上,再将缓存的数据对象通过相同的哈希函数h1映射到环结构上的另一点上;s3.在所述环结构上从数据对象映射的位置开始,沿顺时针方向查找,所遇到的第一个虚拟缓存服务器,即为该数据对象所对应的虚拟缓存服务器;s4.定义虚拟缓存服务器到物理缓存服务器的哈希函数为h2,通过哈希函数h2将所述步骤s3中的数据对象映射到物理缓存服务器上进行缓存;s5.当分布式缓存服务器集群中增加或减少物理缓存服务器时,虚拟缓存服务器做出相应调整,虚拟缓存服务器的具体调整过程如下:当物理缓存服务器增加时,修改虚拟缓存服务器到物理缓存服务器的哈希函数h2,将一部分虚拟缓存服务器映射到新增的物理缓存服务器上;当物理缓存服务器减少时,修改虚拟缓存服务器到物理缓存服务器的哈希函数h2,将原来映射到被删除物理缓存服务器上的虚拟缓存服务器重新映射到删除后的其他物理缓存服务器上。优选地,所述步骤s1中虚拟缓存服务器的具体生成过程如下:定义第i台物理缓存服务器的总性能设定公式为:si=k1×pi+k2×mi+k3×bi;其中,si表示第i台物理缓存服务器的总性能;pi、mi、bi分别表示第i台物理缓存服务器的cpu主频、内存大小和网络带宽三个服务器性能衡量标准的向量值;i∈(1,n),n表示分布式服务器集群中物理缓存服务器的数量;k1、k2、k3分别表示各指标的权重,且k1+k2+k3=1;第i台物理缓存服务器的初始虚拟缓存服务器数量的设定公式为:vi=[si×n];其中,vi表示生成的虚拟缓存服务器数量;n为常数,表示集群中标准物理缓存服务器对应的虚拟缓存服务器数量。优选地,所述步骤s2中,特征值为mac地址、ip地址和域名中的任意一种。优选地,所述步骤s2中的环结构为一致性哈希算法的环结构,所述步骤s2中的哈希函数h1和步骤s4中的哈希函数h2均为基于md5的ketama散列函数。本发明具有如下优点:本发明基于引入虚节点的一致性哈希算法提供的对数据的映射方式,结合并针对分布式内存对象缓存系统memcached服务器集群的工作特点,引入了虚拟缓存服务器的概念和方法,很大程度上解决了缓存服务器集群的负载均衡问题,并提高了缓存服务器集群的整体性能。附图说明图1为本发明实施例中分布式缓存服务器集群的性能优化方法流程图。图2为本发明实施例中数据对象映射到环结构上的过程示意图。图3为本发明实施例中虚拟缓存服务器与物理缓存服务器的映射关系示意图。图4为本发明实施例中增加物理缓存服务器时虚拟缓存服务器的调整示意图;图5为本发明实施例中减少物理缓存服务器时虚拟缓存服务器的调整示意图。具体实施方式下面结合附图以及具体实施方式对本发明作进一步详细说明:如图1所示,一种分布式缓存服务器集群的性能优化方法,包括如下步骤:s1.为分布式缓存服务器集群中的物理缓存服务器生成虚拟缓存服务器。其中,本发明实施例中的分布式缓存服务器集群为memcached缓存服务器集群。生成虚拟缓存服务器的具体过程如下:定义第i台物理缓存服务器的总性能设定公式为:si=k1×pi+k2×mi+k3×bi;其中,si表示第i台物理缓存服务器的总性能;pi、mi、bi分别表示第i台物理缓存服务器的cpu主频、内存大小和网络带宽三个服务器性能衡量标准的向量值;i∈(1,n),n表示分布式服务器集群中物理缓存服务器的数量;k1、k2、k3分别表示各指标的权重,且k1+k2+k3=1;第i台物理缓存服务器的初始虚拟缓存服务器数量的设定公式为:vi=[si×n];其中,vi表示生成的虚拟缓存服务器数量;n为常数,表示集群中标准物理缓存服务器对应的虚拟缓存服务器数量。例如:设物理服务器集群的基准的cpu性能值为pa,内存大小为ma,网络带宽值为ba。设第i台物理缓存服务器的cpu性能值为pi,内存大小为mi,网络带宽值为bi。则由pi=pi/pa,mi=mi/ma,bi=bi/ba可得第i台物理缓存服务器的性能向量为[pi,mi,bi]。假设分布式缓存服务器集群的数量n=2,因此物理缓存服务器的总体性能s2=k1×p2+k2×m2+k3×b2,进而由公式vi=[si×n],得到:上述2台物理缓存服务器所对应的虚拟缓存服务器数量v2=[s2×n]。s2.将虚拟缓存服务器的某一特征值通过哈希函数h1映射到环结构上的某一点上,再将缓存的数据对象通过相同的哈希函数h1映射到环结构上的另一点上,如图2所示。其中,上述特征值为mac地址、ip地址和域名中的任意一种。在该步骤s2中的环结构为一致性哈希算法的环结构。另外,在步骤s2中的哈希函数h1为基于md5的ketama散列函数。s3.在环结构上从数据对象映射的位置开始,沿顺时针方向查找,所遇到的第一个虚拟缓存服务器,即为该数据对象所对应的虚拟缓存服务器。如图2和图3所示,假设物理缓存服务器的数量为2,数据对象数量为4,且分别用“数据对象1、数据对象2、数据对象3和数据对象4”来表示。两台物理缓存服务器用实线圆形代表且分别表示为“物理缓存服务器a”和“物理缓存服务器b”。而物理缓存服务器a所对应的虚拟缓存服务器用虚线圆形代表且分别表示为“虚拟缓存服务器a1、虚拟缓存服务器a2”,而物理缓存服务器b所对应的虚拟缓存服务器用虚线圆形代表且分别表示为“虚拟缓存服务器b1、虚拟缓存服务器b2”。以环结构上的数据对象1为例进行说明:当“数据对象1”通过哈希函数h1映射到一致性哈希环结构上以后,按照顺时针方向寻找相对应的虚拟缓存服务器位置,其顺时针方向第一个虚拟缓存服务器为“虚拟缓存服务器a2”,即为“数据对象1”的相对应位置(带箭头虚线指示)。以此类推,得到“数据对象2、3、4”在环结构上相对应的位置,具体过程如图2所示。s4.通过图3可以看出,虚拟缓存服务器到物理缓存服务器的哈希函数为h2。通过哈希函数h2将步骤s3中的数据对象映射到物理缓存服务器上进行缓存。在该步骤s4中哈希函数h2也为基于md5的ketama散列函数。s5.当分布式缓存服务器集群中增加或减少物理缓存服务器时,虚拟缓存服务器做出相应调整,虚拟缓存服务器的具体调整过程如图4和图5所示:当物理缓存服务器增加时,修改虚拟缓存服务器到物理缓存服务器的哈希函数h2,将一部分虚拟缓存服务器映射到新增的物理缓存服务器上。例如,当增加一个物理缓存服务器c时,通过修改虚拟缓存服务器到物理缓存服务器的哈希函数h2,将虚拟缓存服务器b1映射到该新增的物理缓存服务器c上。当物理缓存服务器减少时,修改虚拟缓存服务器到物理缓存服务器的哈希函数h2,将原来映射到被删除物理缓存服务器上的虚拟缓存服务器重新映射到删除后的其他物理缓存服务器上。例如,当减少一个物理缓存服务器b时,通过修改虚拟缓存服务器到物理缓存服务器的哈希函数h2,将原来映射到物理缓存服务器b上的虚拟缓存服务器b1和虚拟缓存服务器b2重新映射到删除后的其他物理缓存服务器(本实施例中是指物理缓存服务器a)上。下面具体阐述本发明实施例中的优化方法是如何解决负载均衡问题和集群性能问题的。针对负载均衡问题:目前,memcached分布式数据缓存系统采用的是传统一致性哈希算法的设计思想,当集群中物理缓存服务器数量较少的时候,由于服务器经过哈希函数映射过后,在环结构上分配的随机性,会导致物理缓存服务器所承担的负载并不均匀。而本发明中的步骤s1至s4是为memcached分布式数据缓存系统生成虚拟缓存服务器并映射到哈希环结构上的完整过程。本发明通过引入虚节点的概念为集群内的物理缓存服务器生成相应的虚拟缓存服务器,即在环结构是通过虚拟缓存服务器在逻辑上将环分成若干等份,每个虚拟缓存服务器对应着各自的物理缓存服务器,因而当数据进行缓存时,环结构上分配的是尽量均匀的虚拟缓存服务器,其所承担的负载相对于物理缓存服务器的随机分配要更佳的均衡,也即解决了分布式缓存服务器集群的负载均衡问题。针对集群性能问题:由于当前memcached系统集群中未采用虚拟化设计,当集群内出现物理服务器增加或删除服务器时,环结构上原本的数据的键值与服务器的映射关系被破坏,则会有大量的数据键值要进行重新定位和重新映射,此过程将浪费大量时间,减慢数据缓存的速度,进而影响到集群的整体性能表现。而本发明的步骤s5详细阐明了引入虚拟缓存服务器后,当集群内进行增加或删除服务器操作时的具体应对措施。通过步骤s5,当集群出现服务器增删现象时,环结构上数据键值的映射关系没有被破环,则数据缓存的速度没有受影响,进而相对于传统的缓存方法,本发明提高了分布式缓存服务器集群的整体性能。当然,以上说明仅仅为本发明的较佳实施例,本发明并不限于列举上述实施例,应当说明的是,任何熟悉本领域的技术人员在本说明书的教导下,所做出的所有等同替代、明显变形形式,均落在本说明书的实质范围之内,理应受到本发明的保护。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1