端节点算法学

端节点算法学

ID:47198213

大小:155.00 KB

页数:15页

时间:2019-08-22

端节点算法学_第1页
端节点算法学_第2页
端节点算法学_第3页
端节点算法学_第4页
端节点算法学_第5页
资源描述:

《端节点算法学》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、端节点算法学端节点算法学是网络算法学在端节点尤其是服务器上的运用。我们可以认为它是建立高速服务器的一组系统性技术。随着网络功能虚拟化的提出,将来数据中心绝大部分的网络设备都会在通用服务器上实现,因此端节点算法学的重要性就更突出了。消除不必要的拷贝如果我们跟踪一个网络包从进入网卡到完成处理的整个过程,会发现网络包在终端中被拷贝了多次,具体场景稍后会看到。为什么我们要把数据拷贝这个问题单独提出来讨论,是因为在计算机中进行拷贝会消耗两个非常宝贵的资源:内存带宽和内存本身。内存带宽反映了系统读写数据的能力。由于现代计算机中访存是最大的瓶颈,如果web服务器处理一

2、个报文涉及到k次拷贝,那么这个web服务器的吞吐量就可能降至1/k。计算机中内存的容量是确定的,如果一个报文在内存中存k份,则会降低内存的有效容量。能够进入内存或cache的数据量少了,访问数据的延迟就增大了。所以说数据拷贝是影响计算机系统性能的重要因素。本章关注如何消除不必要的拷贝(P1)。一个拷贝如果不是由硬件要求的,该拷贝是不必要的。比如,网络适配器将收到的数据拷贝到计算机内存,这是硬件要求的;然而,应用程序和操作系统之间的拷贝,主要是由操作系统的结构化产生的要求,除此之外没有什么特别的理由,这个拷贝是可以考虑消除的。除了拷贝之外,这一章还将讨论其

3、它需要对数据包载荷进行的操作(如计算检查和)。5.1为什么要拷贝数据我们首先看看在终端中数据的多次拷贝是怎么发生的。考虑用户向web服务器请求一个静态文件,该文件在磁盘上;web服务器从磁盘中读出文件,发送到网络上。我们关注在此过程中,数据在web服务器中的转移过程。图5.2给出了涉及到的计算机系统的主要部件和拷贝过程。涉及到的主要硬件为CPU、存储器、内存总线、I/O总线、硬盘和网卡,主要软件为web应用程序和内核程序。这里涉及到两个主要的内核子系统,文件子系统和网络子系统。文件子系统负责文件管理,网络子系统负责报文收发和协议处理。为简单起见,图中只画

4、出了一个CPU(许多服务器有多个处理器),并且只关注对静态内容的请求,即文件直接从磁盘中读出。如果请求的是动态内容,web服务器后面还需要一个数据库,由服务器侧的一个CGI程序处理请求,从数据库中读数据,构造网页,再传给web服务器。注意,图中将文件子系统和网络子系统的代码画在处理器中。实际上,这些代码也存放在主存中,由处理器从主存中获取。然而,位于处理器指令cache中的代码可以看成是在处理器中的。一个简单的故事直观上,这个故事是很简单的。首先web应用程序通过一个系统调用(如read())将文件从磁盘读入到它的缓冲区(应用缓冲区);然后构造一个HTT

5、P响应头,通过一个系统调用(如write())将响应头和缓冲区内容交给网络子系统(TCP/IP程序);网络子系统将数据划分成适当大小的块,加上各层协议头后交给网络适配器发送。如果讲原理,一般就讲到这个程度。一个真实的故事实际上,这个故事的细节要复杂得多。首先,文件一般先从硬盘读入到一个称为文件缓冲区的内核空间,我们称copy1。这个做法是值得提倡的,这样随后对该文件的请求就可以直接从内存得到,而不需要每次都去读硬盘。所有的web服务器都是这么做的,这样可以极大地减小响应时间。其次,文件数据从文件缓冲区拷贝到web程序的应用缓冲区,我们称copy2。接着,

6、web程序对一个TCP套接字执行一个write()系统调用。在write()调用中描述的应用缓冲区被拷贝到一个套接字缓冲区,这是内核中不同于文件缓冲区和应用缓冲区的另一个缓冲区,这称为copy3。最后,每个数据块在加上了各层协议头之后,由驱动程序将数据包拷贝到位于网卡的缓冲区中,发送出去。这称为copy4。在传输到网络之前,TCP程序还要扫描一遍数据,计算TCP检查和。以上过程涉及到4次拷贝和1次涉及全部包数据的检查和计算。资源消耗情况我们看一下资源消耗情况。不同内存区域之间的拷贝(copy2和copy3)需要CPU的参与,每个字都要通过内存总线读一次和

7、写一次,是消耗资源最多的。计算TCP检查和需对每个字读一次,最后写一个简单结果,因此使用内存总线一次。涉及外设的拷贝(copy1和copy4),如果由CPU来做拷贝(称程序输入输出),其代价与内存区域之间的拷贝一样,每个字都要通过内存总线读、写各一次。如果由设备来做拷贝(DMA),则每个字只需通过内存总线读一次或写一次。涉及外设的拷贝还会消耗I/O总线带宽(copy1和copy4)。对服务器吞吐量的影响在web服务器的例子中,即使使用了DMA,每一个字也要使用内存总线7次。因此,web服务器的吞吐量不会超过T/7,其中T为内存速度和内存总线速度中的较小值

8、。其次,额外的拷贝消耗了内存。在图中,一个文件被存储在文件缓冲区、应用缓冲区和套

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。