第二部分 端節点算法学.pptVIP

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

第二部分 端节点算法学 端节点算法学 端节点算法学: 网络算法学在端节点(尤其是服务器)上的运用,是建立高速服务器的一组系统性技术。 研究如何减少以下开销: 数据拷贝(chapter 5) 控制转移(chapter 6) 解复用(chapter 7) 定时器(chapter 8) 其它一般性协议处理任务 (chapter 9) 第五章 拷贝数据 消除不必要的拷贝(P1) 计算机中额外的拷贝消耗两个宝贵的资源: 内存带宽:如果处理一个消息涉及k次拷贝,系统吞吐量可能降至1/k 内存:如果一个消息在内存中存k份,有效内存容量降至1/k 一个拷贝如果不是由硬件要求的,该拷贝是不必要的。 消除多余的拷贝使得软件接近实现硬件的潜力,是网络算法学的目标之一。 5.1 为什么要拷贝数据 应用场景: 用户向web服务器请求一个文件 服务器从磁盘读出文件,发送到网络上 资源消耗情况 拷贝和TCP检查和计算都要消耗内存总线带宽 不同内存区域之间的拷贝(copy 2,copy 3): 每个字都要通过内存总线读一次和写一次 计算TCP检查和:需对每个字读一次 涉及外设的拷贝(copy 1,copy 4): 如果由CPU做拷贝(PIO):每个字都要通过内存总线读一次和写一次 如果由设备做拷贝(DMA):每个字只需通过内存总线读一次或写一次 涉及外设的拷贝还消耗I/O总线带宽 对服务器吞吐量的影响 在上面的例子中: Web服务器吞吐量不超过T/7,T为内存速度和内存总线速度中的较小值。 有效的文件缓冲区大小仅为总容量的1/3。 多余的拷贝在两个方面损害了服务器的性能: 由于使用了过多的总线和内存带宽,服务器的运行速度低于总线速度。 由于使用了过多的内存,服务器不得不大量地从磁盘而不是主存读文件。 请求动态内容 5.2 消除 Copy 4 为什么需要copy 4? 适配器内存位于适配器上,而内核存储空间位于存储子系统中。 理论上,在一个内存映射的体系结构中,内存可以位于总线上的任何地方,包括在适配器中。 利用网络适配器中已有的存储空间(P4,利用系统组件)和内核存储空间放置的自由度(P13,利用自由度),可以将部分内核空间放在网络适配器中。 如何计算检查和? Witless方法(P2c,共享开销): CPU读入每个字时,捎带计算检查和。 Afterburner适配器(TCP offloading engine): 数据传输由网卡通过DMA完成,网卡使用特殊的硬件在传输数据的同时计算检查和。 缺点: 网络适配器需要很大的内存空间来支持大量的高速TCP连接,网卡成本很高。 在Witless方法中,出错的数据包可能写入应用缓冲区,这可能是Witless方法从未被实施的原因。 5.3 消除 Copy 3 应用和内核之间需要一次拷贝有两个原因: 应用程序在write()之后可能修改其缓冲区,而TCP需要缓存数据以备重发,应用和内核之间通过数据拷贝可以解除耦合。 应用程序和内核程序使用不同的虚拟地址空间,需要通过拷贝来传递数据。 写时拷贝的原理 写时拷贝(copy-on-write): 当应用程序对内核执行一个写时拷贝时,通过修改一些描述符,将内核缓冲区映射到应用缓冲区的物理内存页上。 当应用程序试图修改其缓冲区时,内核进行真正的拷贝(P2b),但这种情况很少发生。 这里运用了Lazy Evaluation(P2b)来优化预期情形(P11)。 使用写时拷贝的示意图 写时拷贝的实现 举例: 假定进程 P1 的虚拟页 X 映射到物理页 P,操作系统要复制 X的内容到进程 P2 的虚拟页 Y。 当对 X 进行写时拷贝时: 内核修改页表,令 Y 指向物理页 P 将 X 表项的COW保护位置位 当应用试图写页X时: 硬件读X的COW位,发现置位,产生一个异常。 操作系统将物理页 P 拷贝到物理页 P’,清除 X 的COW位,令 X 指向 P’,Y 继续指向 P。 写时拷贝的实现(续) 对于不提供写时拷贝功能的操作系统(如UNIX和Windows): 可以通过修改页表避免物理拷贝 需要找到一种替代COW位的保护机制 5.4 优化页面重映射 对页面映射过于简单的看法是,只需修改进程2的页表,使VP 8指向存放包数据的物理页。(X) 页面重映射的开销 修改多级页表: 实际映射可能要求修改多级页表,涉及多次写。 要求锁操作: 修改页表前后要有请求锁和释放锁的开销。 刷新TLB: 当新的地址映射写入页表时,相关的TLB表项要清除或修正。 在目标域中分配虚拟内存: 系统要在目标进程中找到一个空闲的页表表项。 锁住物理页: 为防止页被换出,必须锁住物理页。 Fbufs(fast buffers) 基本观察: 如果一个应用正在通过内核向网络发送大量的数据包,那么一个缓冲区可

文档评论(0)

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

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

1亿VIP精品文档

相关文档