[发明专利]一种基于MongoDB负载均衡优化系统及方法在审
申请号: | 201711228176.2 | 申请日: | 2017-11-29 |
公开(公告)号: | CN107948293A | 公开(公告)日: | 2018-04-20 |
发明(设计)人: | 谭军;张雄 | 申请(专利权)人: | 重庆邮电大学 |
主分类号: | H04L29/08 | 分类号: | H04L29/08 |
代理公司: | 重庆市恒信知识产权代理有限公司50102 | 代理人: | 刘小红 |
地址: | 400065 重*** | 国省代码: | 重庆;85 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 mongodb 负载 均衡 优化 系统 方法 | ||
技术领域
本发明属于数据库的数据处理性能优化领域,尤其是负载均衡改进方法,提升数据库的高并发读写能力。
背景技术
由于大数据时代的到来,云存储技术的快速发展,人们的日常生活以及各种科学实验产生了海量数据。对于如何有效和快速地存储和提取这些海量数据,传统的关系型数据库,暴露了很多难以解决的问题。尤其在面对高并发量的读写请求,海量数据的快速访问、高效存储方面和数据库高扩展性等方面,需求难以得到满足。
因此,非关系型数据库NoSql应运而生。NoSql数据库以支持海量数据、高可用性、高扩展性而闻名,解决了关心型数据库所面临的问题。其中MongoDB作为文档型数据库的代表,因其高性能、易部署、易使用、存储效率高等优点,获得很多大中型企业和网站的使用。
MongoDB为了存储海量数据,依据其自动分片机制来实现数据库的水平扩展(是指加入更多的服务器来加大存储空间,提升运算性能),而且水平扩展的过程是系统自动实现,无需人工添加。另外数据存储在每个分片中(将数据划分为一定大小的数据块,然后放入各个服务器中),当各个服务器中的数据块个数不均衡时,依靠系统自带的负载均衡算法来实现,自动实现数据再分配。
目前MongoDB中负载均衡算法依靠的是balancer模块来实现。它是一个后台运行服务,统计各服务器中数据块的个数。当任意两个服务器的数据块个数的差值达到阈值时,balancer模块就会将数据块从数据块数多的服务器转移到数据块数少的服务器中,直到两者数量之差小于阈值。
但是通过仔细研究发现,这个分片机制并没有那么智能。分片机制只是根据各个服务器上数据块数量上的差异进行,只能满足个服务器数据数量上的平衡,但没有考虑服务器的负载情况。在面对大量高并发请求时,有可能导致各服务器的访问情况千差万别。进一步来说,一部分服务器满负荷,一部分服务器却无人问津。同样balancer模块只统计了各服务器上数据块个数,没有将数据块的使用情况统计出来,即数据块的操作热度数。总之,不能达到服务器资源利用率的最大化。
发明内容
本发明的目的在于解决MongoDB现有的自动分片机制造成各服务器负载不均衡的问题。将服务器实时负载和数据块的操作热度数综合考虑,来实现MongoDB动态负载均衡,使MongoDB性能得到优化。
本发明的技术方案如下:
一种基于MongoDB负载均衡优化系统,包括MongoDB分布式存储系统,所述MongoDB分布式存储系统的数据存储在每个分片中,将数据划分为一定大小的数据块,然后放入各个服务器中,当各个服务器中的数据块个数不均衡时,通过balancer模块来实现负载均衡,其在所述MongoDB系统框架上增加一个负载监听器模块,负责周期性动态监听各个服务器的cpu利用率NCPU、内存memory利用率NMEMORY、带宽bandwidth利用率NBANDWIDTH,并分别设置cpu利用率权值k1、内存memory利用率权值k2、带宽bandwidth利用率权值k3,服务器根据实时判断是否超载和数据块的操作热度数综合考虑调节,实现MongoDB动态负载均衡。
进一步的,所述cpu利用率权值k1和内存利用率权值k2均比带宽利用率权值k3要大。
进一步的,所述cpu利用率权值k1、内存memory利用率权值k2、带宽bandwidth利用率权值k3还满足k1+k2+k3=1。
进一步的,服务器负载超载的判断步骤包括:
设系统有X个服务器,当前第r个服务器的负载为:
load(r)=k1×NCPU+k2×NMEMORY+k3×NBANDWIDTH
则系统的总负载
系统服务器的平均负载
设当前服务器中最大负载为Maxload,并设为服务器A,当前服务器中最小负载为Minload,设为服务器B;
若(Maxload-avg)/avg≥λ,则当前最大负载服务器Maxload超载;上式中λ为系统负载阈值,为常数。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于重庆邮电大学,未经重庆邮电大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711228176.2/2.html,转载请声明来源钻瓜专利网。