大部分服务器都需要配置多个网络适配器端口以满足网络连通性。现在有越来越多的卸载技术,帮助CPU分担网络管理工作。
传统网络环境下,处理器需要处理诸如封装与卸载IP数据包、计算与检查校验和数值等网络任务。在拥有多个网络适配器的情况下,处理器会在这些任务上花费更多资源。卸载技术需要与操作系统相匹配,如Windows Server 2008 R2,可以把这类任务转交给网络适配器进行处理。
卸载技术主要包含了校验、分割、传输控制协议栈(TCP)和接收端缩放(RSS)。一旦管理员理解了现今可用的卸载功能,他们便可以选择特定的网络适配器来满足企业IT环境需求。
校验和卸载
校验和算法扫描TCP与用户数据报协议数据包以捕获错误。校验确保网络适配器收到数据包时进行验证。
活跃结点每天可能会交换百万甚至几十亿数据包。如果服务器处理器可以将卸载计算与校验和比对任务交给网络适配器完成,那么系统整体性能还是可以提升的。
选择支持IPv4与IPv6发送与接收时卸载校验和计算的网络适配器。用于安全通信的网络适配器同样可以无须占用服务器处理器资源,完成卸载加密校验和计算与验证工作。
分段卸载
数据在网络中按分段传输,每个包1,448字节,与TCP、IP和数据链路层报头匹配。传统情况下,处理器会准备分段数据并准备数据包。例如,移动某个65,536的字节块会需要处理器创建并发送最少46个数据包。
如果网络适配器来处理分段卸载,处理器可以将整个数据片段发给网络适配器。这技术通常被称做TCP分段卸载(TSO)或者大段卸载(LSO)。
TCP卸载
TCP卸载有个很有利的因素,就是将整个TCP栈转移到硬件上,这样可以把这些CPU计算资源归还给操作系统。实际上,这意味着将第三层(网络/IP)和第四层(传输/TCP)下降到网络适配器,可以利用适配器的TCP卸载引擎(TOE)处理多种数据组织和传输任务。
投资具备完全TOE功能的网络适配器,可见的回报在于当通过卸载可以释放先前占用不少的CPU资源。传统的千兆网网络适配器可能会消耗CPU约70%的处理能力,大量占用服务器应用程序所需资源。如iSCSI这类占用带宽的基于网络的存储,需要为其配置TOE适配器。
如果不需要完整的TOE功能,可以选择其他网络适配器,这些适配器可以灵活支持TOE的功能子集,如校验与卸载(TSO)或LRO。
接收端调节
处理器需要花费时间来重组提取自单个数据包的数据,当需要处理多个网络端口和应用程序数据包时,单个处理器会比较繁忙。RSS会同时向多个物理处理器(不是内核)传递数据包,这样相同物理处理器只会处理来自相同TCP连接传来的数据包。处理器一直处理相同的数据流,会比重新接收与组合新的数据数据来得更容易也更快。
大多数情况下,文件服务器、Web服务器和数据库服务器都能受益于完整的卸载功能,包括校验和卸载、分段卸载、TOE和接收端调解。其他类型的服务器可以有选择的启用卸载功能。分段对于处理短信息的邮件服务器来说没有太大作用,而媒体服务器不需要分段,因为大部分服务器的经理都花在移动大数据上了。
启用某个卸载功能后,可以客观的从量化后的服务器数据来判断服务器性能是否提升。