Java知识分享网 - 轻松学习从此开始!    

Java知识分享网

Java1234官方群25:java1234官方群17
Java1234官方群25:838462530
        
SpringBoot+SpringSecurity+Vue+ElementPlus权限系统实战课程 震撼发布        

最新Java全栈就业实战课程(免费)

springcloud分布式电商秒杀实战课程

IDEA永久激活

66套java实战课程无套路领取

锋哥开始收Java学员啦!

Python学习路线图

锋哥开始收Java学员啦!
当前位置: 主页 > Java文档 > 大数据云计算 >

分布式系统可伸缩性研究综述 PDF 下载


分享到:
时间:2020-05-17 18:01来源:http://www.java1234.com 作者:小锋  侵权举报
分布式系统可伸缩性研究综述 PDF 下载
失效链接处理
分布式系统可伸缩性研究综述  PDF 下载

本站整理下载:
 
相关截图:
 
主要内容:

分布式系统可伸缩性研究综述
陈 斌1 白晓颖1 马 博1,2 黄俊飞2 (清华大学计算机科学与技术系 北京100084)1 (北京邮电大学网络技术研究院 北京100876)2 摘 要 可伸缩性(Scalability)反映了系统可随系统需求和资源变化,持续满足性能需求的能力。在不同的场景下,
可伸缩性的基本定义和度量方法能够通过不同的角度进行理解和表达。根据系统需求和运行状态,改变可用 资 源 数
量以及任务调度方式,动态调整系统性能,是系统可伸缩性实现的主要途径。分布式资源管理系统可伸缩性设计的关
键技术可以从并行任务调度和分布式系统框架两个方面进行分析。可伸缩性测试是检测和评价系统性能的主要依
据,并行代码测试以及可伸缩性测试系统设计的主要方法是测试技术的两个重要组成部分。随着软件范型的发展变
化,软件的部署和提供逐步向基于开放、共享虚拟化资源管理平台的在线服务方式的转变,可伸缩性已成为云计算背
景下软件服务的重要性能指标,进一步探讨可伸缩性在新的软件范型下所面临的挑战性问题是可伸缩性研究的新 方
向。
关键词 可伸缩性,分布式资源管理,可伸缩性度量,设计与测试
中图法分类号 TP311.56   文献标识码 A
SurveyonSoftwareScalabilityofDistributedSystems
CHENBin1 BAIXiao-ying1 MABo1,2 HUANGJun-fei2 (DepartmentofComputerScienceandTechnology,TsinghuaUniversity,Beijing100084,China)1 (ResearchInstituteofNetworkingTechnology,BeijingUniversityofPostsandTelecommunications,Beijing100876,China)2
Abstract Scalabilityrepresentstheabilitythatasystemcontinuallysatisfiestheperformancerequirementswiththe
changingsystemrequirementsandresources.Basedondifferentscenarios,thebasicdefinitionandmetricsofscalability
canbeunderstoodandintroducedfromdifferentperspectives.Themainapproachthatsystemsimplementscalabilityis
todynamicallychangetheamountofavailableresourcesandthemanneroftaskschedulingaccordingtothesystemre- quirementsandrunningstatus,resultingdynamicadjustmentofsystemperformance.Thekeytechniqueofdistributed
resourcemanagementsystemcanbeanalyzedfromparalleltaskschedulinganddistributedsystemframework.Scalabili- tyisthekeyissueforevaluatingandmeasuringsystemperformance,thispaperstressedonparallelcodetestingandthe
mainapproachesinscalabilitytestingsystemdesign.Withthedevelopmentinsoftwarediagram,thedeploymentand
supplyofsoftwarearegraduallytransferringtotheapproachofopenandsharedvirtualresourcemanagementonline
serviceplatform,scalabilitybecomesanimportantguidelineforsoftwareunderCloudComputing,thispaperfurtherdis-
cussedthechallengingproblemsundernewsoftwarediagramforfurtherresearchpurpose.
Keywords Scalability,Distributedresourcemanagement,Scalabilitymeasurement,Designandtesting 1 概述
可伸缩性是分布式计算和并行计算中的重要指标,它 描
述了系统通过改变可用计算资源和调度方式来动态调整自身
计算性能的能力。可伸缩性分为硬件和软件两个方面。硬件
方面的可伸缩性指的是通过改变硬件资源来满足变化的工作
负载,比如改变处理器的数目、内存和硬盘的容量。软件方面
的可伸缩性是通过改变调度方式和并行化程度,来满足变化
的工作负载。度量、设计与测试是系统可伸缩性研究的3个
主要方面。 ·可伸缩性的度量方法是设计和测试可伸缩系统的基
础。但是由于可伸缩系统存在的环境复杂多样,因 此 准 确 地
度量一个系统的可伸缩性是非常具有挑战性的。一般的度量
方法是通过加载不同的系统资源和系统负载,来评价系统在
这个过程中的性能变化。在最理想的情况下,如 果 同 时 对 工
作负载和计算资源进行 K 倍的增长或减少,而系统或应用的
平均响应时间不变,则系统拥有最优的可伸缩性。 ·资源的按需动态分配和调度是系统可伸缩性的重要基
础。对于传统的分布式和并行系统,在工作负载变化时,底层
的资源管理机制和调度效率决定了系统应用的可伸缩性。资
源调度效率高的管理机制,在工作负载增大的情况下,能够为
系统和应用及时分配更多的资源,使得系统和应用的计算能
· 71 ·
力在短时间内适应大工作负载,避免造成计算能力的大幅滑
坡;在工作负载降低的情况下,及时回收限制资源,提 高 系 统
对资源的利用率,为其余的应用预留资源储备。反之,资源调
度效率低的管理机制对改变资源的请求不敏感,会造成分配
或者回收资源不够及时和充分。 ·测试是检验和评价可伸缩性的依据。目前对可伸缩性
存在着两个层次的测试:1)代 码 级 别 测 试;2)系 统 级 别 的 测
试。代码级别的是针对并行程序中的每一个代码块,检 测 它
对系统可伸缩性的影响。一般利用统计学的方法,对 并 行 算
法进行统计建模,根据多次实验的结果统计评价代码块对于
系统性能的贡献,定义可伸缩性的权重参数,从而分析整个并
行程序的可伸缩性。系统级别的测试方法是通过工作负载的
预分析和实时运行状态的监控,将预分析的结果和实时的监
控结果结合,分析整个系统的可伸缩性。
随着云计算等分布式计算平台技术的发展,SOA(Servi-
ce-OrientedArchitecture)和Saas(SoftwareasaService)等 新
型软件开发范型的发展对可伸缩性提出了更高的要求。例 如,云计算和Saas提出 了“无 限 资 源”的 概 念,为 大 规 模 应 用
提供海量资源共享、高可伸缩的能力。可 伸 缩 性 已 成 为 新 型
服务计算模式的基础和关键,也对传统的可伸缩性度量、设计
和测试技术提出了新的挑战。本文在对上述已有研究和实践
工作调研和分析的基础上,进一步探讨云计算平台下服务软
件的可伸缩性研究的挑战性问题。
本文在第2节介绍了可伸缩性的定义;第3节 介 绍 了 典
型的可伸缩性度量;第4节分析了典型的资源调度方法和 管
理系统;第5节分别讨论了代码级别和系统级别的可伸缩 性
测试方法;第6节探讨了在新的软件开发泛型下可伸缩性 的
挑战性问题。 2 可伸缩性定义
AndréB.Bondi[2]给出了可伸缩性的定义:可伸缩性是指
网络、系统或者进程能够通过扩充自身资源来支撑更大工作
负载的能力。他将可伸缩性分为4个类别:负载可伸缩性、空
间可伸缩性、时空可伸缩性和结构可伸缩性。负 载 可 伸 缩 性
是指系统能够平滑地在变化的工作负载下过渡,通过调节资
源来满足变化的负载,在调节的过程中不会产生超过规定限
度的时间延迟和资源占用。空间可伸缩性是对系统调节资源
的一个限制,即在负载增大的情况下,所占用的资源(内存、磁
盘空间等)最多和负载呈线性增长,禁止了通过无穷尽地增加
资源来支撑负载的做法。时空可伸缩性是指在给定的运行时
间要求下(时),通过扩展资源(空)来满足增大的负载,在扩展
的同时应用的运行时间依旧满足要求。结构可伸缩性是指实
现的结构能够很容易地进行资源上的扩充和调节。
现有研究进一步探讨了在具体应用领域的可伸缩性定
义,提出了多维度的概念,及以维度代表会影响系统行为的应
用程序组 成 部 分[4];并且在系统需 求的范围内讨论可伸缩
性[3]。在文献[3]中,可伸缩性的定义是:对 于 特 定 的 需 求 集
合,在不同的负载下,系统对资源的利用率保持不变。对于可
伸缩性的度量,在特定的领域下才有意义,这样也就产生了可
伸缩性度量的多个维度。文献[3]中给出了3个维度的实例:
处理效率、存储空间和接入点数目。在处理效率的维度中,系
统对信息的处理效率是影响系统行为的最重要指标,它指导
了系统调节资源适应负载的行为。在 这 个 指 标 下,可 以 对 可
伸缩性进行更明确的度量。同 样 地,在存储空间和接入点数
目的维度中,系统的伸缩行为受到存储空间和接入点数目的
影响和指导。一些研究进一步扩展了可伸缩性的维度[5],提
出了性能、经济、物理大小、寻址、软件独立性、通信能力、技术
独立性和可选择性等多个维度。
在实际应用中,可伸缩性被定义为通过增加资源使服务
性能产生线性(理 想 情 况 下)增 长 的 能 力[7]。如 图1所 示,有
两种增加资源的方法:一种是上扩,一种是外扩。上扩是指给
单个计算节点使用性能更好、速度更快和成本更高的硬件来
增加资源,包括添加更 多 内 存、添加更多或更快的处理器,或
者只是将应用程序迁移到功能更强大的单个计算机。外扩是
增加计算节点的数目来增加资源。外扩增加了计算节点的数
目,对管理提出了更大的挑战。由 图 1可 以 看 出,增 加 资 源
时,外扩比上扩更容易达到最佳可伸缩性;而且外扩这种方式
可以更加灵活地增加或者减少计算节点。 图1 上扩和外扩
3 可伸缩性的度量方法
可伸缩性的度量方法是设计和测试可伸缩性系统的基
础,在并行计算和分布式系统中得到广泛的讨论。早 在1990
年,MarkD.Hill[1]首先提出使用加速度来定义可伸缩性。假 设time(n,x)是一个有n个处理器的系统处理规模为x的问题
所需 要 的 执 行 时 间,加 速 度 定 义 为speedup(n,x)=time
(1,x)/time(n,x),即对于同样规模的问题,在 采 用1个 和n
个处理器时所需的执行时间的比值。基 于 加 速 度 的 概 念,效
率定义为efficiency(n,x)=speedup(n,x)/n,即速度与处理
器个数的比值。如果一个系统的所有算法的效率都是1,那
么这个系统是可伸缩的。也就是说,对同样规模的问题,采用
n个处理器所需执行时间是采用1个 处 理 器 的1/n。上 述 定
义主要是基于在问题规模不变的条件下,研究处理器数量的
改变对系统 性 能 的 改 变。但当问题中存在大量顺序执行代
码,且处理器足够多(例如大于问题规模)时,系 统 的 效 率 很
低。另外,该定义无法度量在问题大小改变时性能变化的幅
度。
多数的可伸缩性度量是在并行系统中定义的,主 要 有 基
于速度的、基于加速比的和基于效率的方法。 ·基于速度的方法
速度是指一个计算节点完成的工作与所需时间的比值。
基于 速 度 的 方 法 主 要 有 isospeed[9] 和 isospeed-efficien- cy[10,23]。
SunXian-He提出了isospeed方法来度量算法的可伸缩
性。假设当有 N 个处理器在工作,W 是完成一个算法所需要
的工作量,为了保证平均速度不变,假设当 N′>N 个处 理 器
在工作,W′是完成这个算法所需要的工作量,从 系 统 规 模 N 到N′的 可 伸 缩 性 是ψ(N,N′)=N′W/NW′。假 若 处 理 器 之
· 81 ·

 

------分隔线----------------------------

锋哥公众号


锋哥微信


关注公众号
【Java资料站】
回复 666
获取 
66套java
从菜鸡到大神
项目实战课程

锋哥推荐