服务器Lan系统性能分析原则
一个服务器性能分析的基本原则:一个存在性能瓶颈的服务器只能以对应存在瓶颈的元件所能达到的性能来运行,不论其它元件能运行多快。例如,一个64位,66MHz的PCI总线的最大突发速率可达到533 MBps。一个持续传输速率为140-160 MBps的单口千兆网卡远远达不到PCI总线所能承受的限制。就算是能维持300-320
MBps传输速率的双端口的千兆网卡也不会使PCI总线达到饱和。
不要在只有一个用户拷贝文件的时候测试服务器的吞吐量。
LAN适配器功能使用“请求-回应”协议。这意味着客户端向服务发出请求读取数据,然后服务器响应请求传输数据。在好多情况下,应用程序发出的请求不会达到服务器的极限。它们一般会在发出下一个请求前是等待的状态。然而,单一客户端几乎不会使网络或服务器的吞吐量达到最大值。一般允许一定数量的客户端时才会使网络或服务器的吞吐量达到最大值。所以,不要单纯地从工作站通过网卡或任何网络向服务器执行一个拷贝命令来指望得出传输速率。
虽然PCI总线,内存和前端总线可以支持千兆网卡的持续传输速率,其它的瓶颈有可能阻止这个最大值的实现。
如果应用程序持续发送小包会导致低的吞吐量及高的CPU占有率。需要小包数据的应用需要LAN适配器处理器花费大部分的时间来执行占有代码的同时服务器的处理器执行大量的中断命令。几乎每个LAN适配器都不能实现以小包的形式(小于512 bytes)维持持续的传输速率。
要提高性能,解决方案是新的应用程序发出大容量的请求包(困难以致不可能)或者将100M的网卡
升级到千兆网卡。
大多数的NIC设备驱动没有跟SMP形成很好的比例。
每次只有一条线路可以跟一个硬件适配卡通讯,所以拥有多于两个CPU通常不能在吞吐量上带来很大的提高。通常,要提高传输小容量frame的环境的唯一方法是取得一个更新的优化NIC驱动,该驱动可以支持一个中断处理多个事务,或是升级一个主率非常高的CPU.
在升级更高主率CPU时有要注意的地方。因为内存控制器及PCI总线桥接芯片的系统执行一般会限制CPU与PCI LAN适配器的通讯速率。通常这个反应时间会是LAN设备驱动处理时间的一个重要的组成部分。一个更高主频的CPU对于更快速地定位另一端PCI总线的PCI LAN适配器来讲没有太大的影响。当升级了更高主频的CPU后,通常瓶颈会限制在为传输小容量包的LAN吞吐量获取上。
传输量的大小会给吞吐量带来很大的区别。
当应用需要大容量数据包时LAN适配器的工作效率会大大提高。网卡具有1448 bytes的有效载荷。计划目标不大于1448 bytes或多发的1448 bytes的传输包量是对网卡的最好的选择。
Windows Server 2003使用包的分割来为网卡降底CPU的占用率。
卸载大数据包的分割功能请求发到网卡。基本上,这意味着最好是具有服务器CPU大的传输分请求到适合的大小包。网卡可以接收一个大的传输请求并将数据分成多个数据包。这通常导致大于2 KB的请求,并解释了为什么CPU占有率开始下降的原因。
Windows Server 2003和卸载checksum
大多数100 Mbps及千兆适配器支持Windows Server2003的checksum卸载功能。当包的大小超过一个预定水平的话,适配器会采用服务器CPU的checksum卸载功能。Checksum是一个用来检查数据集成性的计算值。
Checksum因为大数据包而不是小数据包而被卸载到适配器的原因跟性能有关系。在处理128 byte包大小时,一个100 Mbps的网卡可能以131,072包每秒的收发速度来进行。如此高的包率的处理Checksum的过程,对于LAN适配器的处理器来讲是非常大的工作量,所以最好是由服务器的CPU来处理。随着包的容量增大,每秒执行的数据包就会越来越少(因为必须花费更长的时间来收发所有的数据),所以要谨慎地卸载checksum到适配器里。
内存速率及前端总线速率会影响TCP/IP LAN的性能。
TCP/IP要求对每个包进行五次的传输及缓冲拷贝动作。所有的而不是其中一个拷贝动作被服务器的CPU来执行。更重要的是,数据必须通过前端总线传输高达四次。PCI总线是用来传送一次而内存总线必须履行四次拷贝。一个服务器通过LAN移动75 MBps的数据包要通过内存总线做五次传输。超过375 MBps,不包括所有的必须从CPU取得的指令所带来的占有率。
在TCP/IP LAN的环境中,清除瓶颈以达到高的吞吐量取决于内存的带宽及处理器总线(前端总线)。这就是为什么更高速的PCI总线对于LAN吞吐量性能有较小的影响。很多现代的服务器都具有800 MHz的前端总线。在这些服务器中,最大的突发传输速率可达到6.4 GBps。但是,要注意这是最好的暴发值,并不是持续的吞吐量。在大多数情况下,800 MHz的前端总线系统可以保持大约5 GBps的传输速率。
在网络应用请求执行大frames数据时,LAN适配器的工作率最高。当应用请求传输小块数据时,LAN适配器的通讯处理器要花费大部份时间来为每个字节的数据传输来执行中断代码。
这就是为什么大多数的LAN适配器不能以全速来传输所有的frame的原因。在这种情况下,解决方案是使用新的应用(困难并可能是不现实的)或是通过使用多路LAN适配器来增加子网数。可以使用更快速的LAN适配器技术,不过成效是低微的。更快的LAN技术可以提供更高的数据传输率,不过当frames很小的时候,大多数的时间是花在适配器中断上而不是用来传输数据。 这篇帖子希望对大家有帮助
页:
[1]