《LINUX向多核的扩展性分析》.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《LINUX向多核的扩展性分析》

单位代码 10006 学 号 分 类 号 TP391 密 级 毕业设计(翻译) LINUX 向多核的扩展性分析 院(系) 名 称 计算机学院 专 业 名 称 计算机科学与技术 学 生 名 称 指 导 教 师 2013 年 6 月 摘 要 本文分析了七个系统 应用程序(Exim,memcached,Apache,PostgreSQL, gmake,Psearchy 和 MapReduce)在运行于 48 核计算机的 Linux 上的可扩展性。 除了 forgmake,所有的应用程序都触发了最新 Linux 内核的可扩展性瓶颈。运用 标准的并行编程技术,本文介绍了一项新的技术——粗略计数器(sloppy counter), 这样瓶颈可以从内核中移除或者可以通过少量改变应用来被避免。优化内核总共 需要修改 3002 行代码。通过本次分析,我们推断还没有因为可扩展性方面的原 因而放弃传统操作系统组织结构。 1 引言 普遍观念是,传统的内核设计在多核处理器上不能表现很好的伸缩性:随着 内核数量的增加,应用程序将在内核上花费更多的时间。杰出的研究人员们主张 重新思考操作系统,而且具备可扩展性的新内核已经被提出了。本文提出的问题 是,由应用程序来决定规模时,传统内核设计是否可以被使用并执行。 这个问题很难决断性地回答,但我们尝试做出稍许解释。我们在 48 核机的 Linux 上分析部分系统应用程序。我们测试 Linux 操作系统,因为它具有传统的 内核设计,同时 Linux 社区在扩展性 方面已经取得了很大进展。应用程 序包括 Exim 邮件服务器[2],memcached 对象缓存[3],Apache 服务器[1],PostgreSQL[4], gmake[ 23],Psearchy 文件索引器[35, 48],和一个多核的 MapReduce library[38]。 我们将这些应用程序统称为 MOSBENCH(多 核操作系统基准),这是专为并行 执行和着重使用主要的 Linux 内核组件而设计的。 判断 Linux 内核设计是否兼容应用程序的可扩展性,我们应用了如下方法。 首先,我们在运行于 48 核机的 Linux(内核版本为 2.6.35)上,衡量 MOSBENCH 标准应用程序的伸缩性,实验中我们使用保存在内存中的 tmpfs 文件系统来避免 磁盘使用瓶颈。Gmake 扩展良好,但其他应用程序扩展不佳,48 核机的每个内 核执行的工作远比单核时少。我们试图通过修改应用程序或 Linux 内核来理解和 解决程序的扩展问题。于是我们采用迭代的办法,原因在于先修正一个扩展性的 问题会进一步暴露深层问题。应用程序的最终结果是:要么在 48 核机上有很好 的扩展性,要么归咎于由应用程序、Linux 内核或底层硬件难以解决的问题而导 致的非扩展 性。我们 分析:内 核是否与扩 展区域兼 容的分析 结果是微小 的,在 Linux 内核的难以解决的问题最终限制了应用的可扩展性。 作为分析的一部分,我们将修正三大类 MOSBENCH 标准应用具有的的扩展 性问题:由 Linux 内核执行引起的问题,应用程序的用户层设计引起的问题,应 用程序使用 Linux 内核服务的方式所造成的问题。一旦我们确定了一个瓶颈,通 常只需要很少的工作就可以消除或避免它。在某些情况下,我们修改应用程序使 其能够更趋于并行,或以更适于扩展的方式调用内核服务,又或者我们直接修改 内核。内核的变化都是本地化的,通常通过分布式数据结构避免不必要的分享来 包含排他锁和原子指令。所需更改是细微的,其原因之一在于普通的 Linux 已经 做出了很多的优化来提高可扩展性。我们进一步推测,这也许是 Linux 系统调用 API 非常适合于实现避免对内核对象的不必要竞争。 本文的主要贡献如下:第一个贡献是,对 Linu x 2.6.35-rc5 内核使用 16 种扩 展性提高方式,来形 成我们引用的内核 补丁(PK)。一些变化来源于 新的想法, 我们称之为模糊计算器,它具有很好的属性,可以用来增大共享计数器让一些功 能在不必修改共享计数器的所有功能的情况下扩展性增强。在 Linux 中,这种技 术是特别有效的,因为通常一个给定的共享计数器中,只有几个功能是扩展性的 瓶颈;模糊计数器允许我们只替换这些少量的功能,而无需修改内核中的其他功 能。第二项贡献是一组衡量操作系统可扩展性的应用程序基准,MOSBENCH, 并且公开了它们

文档评论(0)

babiwawa + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档