基于多核的linux可伸缩性分析.ppt

  1. 1、本文档共23页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
概述 本文介绍了7个系统应用程序在48核计算机上的可扩展性,当前内核版本中,这些程序在大都存在可扩展性瓶颈。 采用标准的并行编程技术对应用进行很少的(3002行)修改就能把瓶颈从内核中去除或者避免。 提出一种关键的技术:模糊计数器(sloppy counters)。 证明没有必要为了扩展就跟着放弃传统的操作系统结构。 概述 本文的分析是在48核的计算机上进行的; 采用linux操作系统; 采用MOSBENCH作为评价可扩展性的标准。 相关的工作有哪些方面? Linux扩展性提高。 Linux扩展性研究。 Solaris 扩展性研究。 Exim mail serve memcached Apache serving static ?les PostgreSQL Gmake Psearchy ?le indexer multicore MapReduce library ——衡量和检验系统可扩展性的基准。 Mosbench应用: Mosbench应用: 邮件服务: Exim是邮件服务,单核环境下它花掉69%的时间在内核。主要需要进程 创建和小文件创建和删除。 对象缓存: memcached是一个内存中的关键值存储,经常被用来提高Web应用程序性能。当需要的尺寸小memcached主要需要网络栈。花费它80%的时间在一个核的内核上处理包。 Web服务器: Apache是一种流行的Web服务器。除了需要网络栈资源其还需要文件系统,其花费60%时间在内核。 数据库: PostgreSQL的是一种流行的开源SQL数据库。只读的工作负荷,避免了大多数应用的瓶颈,PostgreSQL的花费只有1.5%的时间在一个核心的内核,但这一数据增长到了82%于48核。 并行构建: gmake是一个标准的make实用程序,支持并发地执行独立建立规则的实施。它的时间主要花费在编译器系统时间很少。但是48核的时候有7.6%花在系统上。 文件索引器: Psearchy是一个并行版本的searchy是一个索引和查询Web页面的程序。虽然pedsort花费只有1.9%的时间在一个核的内核,这个增长至23%在48个核,表明可扩展性限制。 MapReduce: Metis是一个MapReduce库针对于一个多核的服务。着重使用内核内存分配和软页面故障码。 Mosbench应用: 检测内核设计与扩展性兼容的方法 首先用MOSBENCH应用在拥有48核的最近的内核设计上测试使用tmpfs文件系统防止磁盘瓶颈,除了gmake其它的应用表现都很差,于是试着去修改内核和应用反复的做。最后的结果是应用很好的扩展,或是得出一些很难的问题无法扩展在内核在硬件。 作为分析的一部分我们修复了三种扩展问题对于MOSBENCH应用: Linux内核的实行引起的 应用的用户级设计引起的 应用使用linux内核的方式 文章的主要贡献 使用了16个提高方式弄成了PK核,还使用了模糊计数器。 使用了一系列引用标准去测量应用系统的扩展性,而且公开了它们。 提高MOSBENCH应用扩展技术的描述。 说明了没有必要为了扩展性而放弃了传统的内核设计。 内核优化 MOSBENCH应用触发内核中的一些可扩展性的瓶颈。我们在这里描述瓶颈和我们的解决方案,然后在后面详细描述每个应用程序的缩放结果,因为许多的瓶颈对多个应用是普遍的存在的。 之所以随着核的增加速度没有按照线性增长是因为核一多了了就会出生序列化的相互通信。这里有几种类型的在MOSBENCH中遇到的序列化相互作用: 1.任务可能锁定共享数据结构,越来越多的核数量增加了锁等待时间。 2.任务可能会写一个共享内存的位置,越来越多的核数量会增加时间等待高速缓存一致性协议去获取独占模式的高速缓存行。这个问题可能会发生在无锁共享数据结构。 3.任务可能争夺有限容量的共享硬件缓存空间,因此增加核的数量增加了高速缓存的命中失误率。任务即使从来没有共享内存也会发生这个问题。 4.任务可能还会争夺像核间联系DRAM端口等硬件资源。所以外加的核花时间等待这些资源,而不是计算。 5.有可能拥有太少保留所有核心繁忙的任务。增加核的数量导致更多的闲置的核。 我们的许多缩放修改遵循同样的模式,避免锁和基础数据的争夺。我们解决其他问题,使用众所周知的技术,如无锁的协议或细粒度锁定,在所有情况下,我们能够消除瓶颈通过对本地内核代码的修改。以下说明我们的技术: 1.多核数据包处理 2.模糊计数器 3.无锁的比较 4.针对每个核的数据结构 5.排除错误共

文档评论(0)

***** + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档