- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于任务流自适应负载均衡算法
基于任务流自适应负载均衡算法 [摘 要]一个高可用、高性能的负载均衡体系架构可以有效地解决服务器和整个系统的压力。通过对几种负载均衡算法优劣的比较,针对负载均衡算法的有效性和其带来的额外开销这一矛盾问题,提出基于任务流的负载均衡调度机制。结合加权随机数的负载均衡算法,提出了平滑的动态加权随机数算法,并将其应用于Riak数据库节点的负载均衡实验之中。通过对实验结果的分析和对其他几种方法的实验结果的对比,证明这一方法的高可用性和有效性
[关键词]负载均衡算法; 高可用; 任务流; Riak; Erlang-OTP
中图分类号:TM422 文献标识码:A 文章编号:1009-914X(2017)12-0316-01
1 引言
因互联网技术急速地推进与发展而剧增的用户量为服务器、数据库,或是整个存储系统都带来了不小的压力。随着大数据时代的到来,庞大的数据量不断递增,非关系型数据库也得以发展与壮大,并迅速流行起来。而非关系型数据库大多以多节点的形式部署,因此,好的负载均衡策略对于数据库,乃至整个存储系统都是至关重要的
负载均衡问题作为一个经典的组合优化问题,其对应的相关算法也层出不穷。然而,没有哪种特定的方法可以有效地解决所有问题,对于不同的场景与环境,每种算法也各有优劣
在分布式存储系统的负载均衡优化问题中,本文提出了基于任务流的自适应负载均衡算法,通过对同一时刻同一节点上的用户量和其操作的频次等相关数据分析,并采用平滑加权随机数算法,来对各节点的权值进行自动调整,从而实现数据库各节点的负载均衡
2 相关内容介绍
本次实验平台采用的是利用Erlang-OTP搭建的server(服务器)和Riak数据库所构成的存储系统。该系统最大的特点就是可用性高,伸缩性好。通过server来实现资源的配置和任务的调度,以及Riak节点的管理
2.1 Erlang-OTP架构
Erlang是由爱立信工程师Joe Armstrong所创,是一门函数式编程语言,其最大的特性就是面向并发。Erlang-OTP架构原先用于欧洲电信方面的应用,具有效率高、稳定性好、支持大并发等优点。而随着这门技术的不断发展,已不再局限于电信方面,而凭借其优点适用于各个行业
2.2 Riak数据库
Riak数据库是一种分布式的键-值(Key-Value)数据库,如同其他非关系型数据库一样,无论存储的值是何种数据类型都可以,包括普通文本、JSON、XML、图片甚至是视频片段。Riak以节点(node)的形式分布,节点与节点之间构成一个哈希环,并可以互相通信,存入的数据会根据初始的设定备份到不同的节点中。因此,即使有节点崩掉,也可以通过其他节点来获得数据
本文通过由Erlang-OTP搭建的server和Riak数据库所构成的存储系统进行实验。server负责接收来自用户的指令并将这些任务按照提出的负载均衡算法分配给Riak数据库的各个节点,从而实现Riak数据库节点的负载均衡。且因为Riak数据库是通过Erlang编写的,因此使用原生Erlang语言来实现Riak的接口无疑是最直接有效的,而性能和效率也是较高的
3 调度机制与算法
3.1 基于任务流的调度机制
一般动态或是自适应的负载均衡算法是通过获取服务器或是数据库节点处CPU、内存等相关资源的使用情况,将这些相关数据传送至主节点端,并以此为依据来执行资源的分配和任务的调度。有些优化算法还会同时修改相关算法的权值,从而实现更加精确的负载均衡,这些算法有效地提高了负载均衡的有效性,但无疑在更加精确的同时也增大了开销和时延。包括主从节点通信的时间开销和网络资源开销,以及从节点对额外任务的资源开销,而这些开销在一些结构环境下是完全不必要的
在绝大多数的分布式存储系统中,为了更充分地、更简单地实现资源的利用,在部署各数据库节点时,其资源的配置一般也是均匀一致的。各节点的负载状况只会随着之后分配到各节点上的任务的不同而发生改变。由此可以提出一种模型,任务流即负载,如图2所示
3.2 负载状况测评
当client向server发送相关请求时,server会获取到类如增、删、改、查等相关操作指令。对于不同的操作指令,给节点带来的负载压力也是不同的,这需要视具体的数据库特性而定。然而,若实时地对各节点的负载状况进行测评并对权值进行改动,会使主节点的压力剧增并带来极大的额外开销,而其带来的收益并不明显。因此采取周期性的检测评估和自适应性调整是比较合理的做法,即在固定的时间间隔内对各从节点的状态进行一次测评并调整权值。假设在一个周期中,主节点向某一从节点发送的单个create请求而带来的负载压力记为P(c),该节点i接收的总create请求数为(c),
您可能关注的文档
最近下载
- AP化学 2012年真题 (选择题+问答题) AP Chemistry 2012 Released Exam and Answers (MCQ+FRQ).pdf VIP
- 第六章 教会法.ppt
- 城镇供水厂运行维护及安全技术规程-详版.pptx
- 无铬厚膜底漆、厚膜预涂板和制备方法.pdf VIP
- 教师道德与法治新课标考试试题三套及答案.docx
- CMA考试 P2试题500道含解析.pdf VIP
- 新型锂电池电解液添加剂技改扩能项目环境影响报告书.pdf
- 2025年广东省中山市华辰实验中学九年级中考数学一模试题(原卷版+解析版).docx VIP
- 历史逻辑 理论逻辑 实践逻辑的必然结果.docx VIP
- 2024年05月江苏无锡市梁溪区机关事业单位招考聘用编外工作人员20人笔试历年高频考点(难、易错点)附带答案详解.docx VIP
文档评论(0)