Linux系统网络性能实例分析( 三 )
5、 TCP卸载引擎
有些服务器应用程序并未使用LinuxTCP/IP协议的一些独有特性如IP过滤或服务质量(Quality of Service ,QoS) ,这些应用可以使用支持 TCP/IP卸载特性的网卡来改进网络性能 。 TCP卸载引擎(TCPOffloadEngine ,TOE)技术包括对现有TCP/IP协议栈软件进行扩展 , 从而能够使用在特殊 TOE网卡(TNIC)上实现的硬件特性 。 这种硬件/软件组合允许操作系统将所有 TCP/IP流量卸载到 TNIC 上的专用硬件中 , 这样就不必将服务器资源消耗在对 TCP/IP帧的处理操作上 , 而是可以将其用于满足应用程序和系统的其他需求 , 从而提高了系统的整体性能 。 这似乎是一种改进网络性能的极好方案 , 但通用的 TCP卸载解决方案却不断地失败 ,TOE只适合一些特定的应用环境 。例如 , TCP卸载机制的适用上下文包括通过商用网络硬件设备构建的存储互连结构、高性能集群解决方案等 。对千兆位以太网的工作负荷分析表明 ,系统需要 1GHz的 CPU处理能力来处理每吉比特网络流量 。 随着更高速的处理器系统、高性能串行PCI-Express系统总线、内置了检验和运算逻辑的以太网控制器以及中断缩减机制的出现 , 用户将可以在服务器中使用多条千兆位以太网连接 , 同时不会导致性能下降 。 然而 , 网络带宽的改善也与系统通过诸如TOE之类的解决方案来提高网络性能的其他部件改进保持一致 。 但由于存在着严重的性能问题 , 并且实际部署 TCP卸载机制比较复杂 , TCP卸载作为一种通用解决方案已经失败 。 学术界和产业界中对于 TOE技术都存在着支持与反对的声音 。 然而 , 除了集群和网络存储解决方案外 , 许多厂商还开发了用于其他各种工作负荷的 TNIC 。与 LinuxTCP/IP软件栈代码相比 , 各种 TOE解决方案都是专有的 , 其功能也各异 。 这些专有的 TOE方案中可能不提供某些特性如 IPCHAINS、 IPTABLES以及通用报文处理能力 。 许多开发 TNIC和驱动程序的厂商都支持多种操作系统 。 尽管早期测试结果显示在Linux上 NetBench的性能改进了 17% ,但所用的驱动程序在测试时并不稳定 ,因此需要进一步研究这种特性 。 如果驱动程序和 NIC更稳定的话 , 应该会实现更高的性能结果 。注意 TOE不同于 TCP分片卸载(TSO) 。TSO只对数据分片操作进行卸载 。 在 TSO技术中 , TCP/IP栈将应用程序传来的整个消息都封装在帧里传递给 NIC 。NIC再将数据(消息)划分为多个帧 , 为每个帧构造帧头以便进行传输 。 这种卸载操作只在发送端(输出通信)完成 , 不处理输入通信 。 而 TOE将整个 TCP/IP协议栈处理操作都卸载到 NIC上 , 包括输入和输出处理 。尽管TOE解决方案是一种改进网络性能的急需技术 ,但目前还不清楚 Linux开源社区将如何采纳该技术 。 有些人认为LinuxTCP/IP栈中已支持 Zerocopy机制 ,因此复制操作的次数已得到减少 。 采用 TOE技术所实现的多数性能收益可通过NIC中的校验和、分片卸载以及中断缩减机制来获取 , 而其余功能只执行基本的 socket管理和进程唤醒 , 因此不需要这种技术 。 如果 TOE解决方案不断改进 ,并且与软件网络栈相比能够显示出巨大优势 , 则 TOE技术的采用量可能会增加 。目前 , 只有商业公司在开发 TOE引擎 ,因此这类解决方案的实现随着厂商的不同而各异 。 厂商也许能够减少或解决TOE实现和部署中的难题 ,并改变那些不愿意承认 TOE是网络性能改进可行方案的怀疑者的想法 。 三、 示例分析 下面给出该示例分析所使用的基准测试的结果 , 并展示目前为止所讨论的各种性能增强特性的累积性能改进 。 某些基准测试捕获所有特性的累积收益 , 而另一些则捕获特定工作负荷的特定收益 。
1、 NetBench
下图所示为 Linux内核与 Samba的各种增强和调优机制给 NetBench基准程序吞吐率带来的性能改进 。 这些测试的硬件执行环境是由 4个 1.5GHz P4处理器、 4个千兆位以太网适配器、 2GB内存以及 14个 15krpm SCSI磁盘构成的 Pentium 4系统 。所有测试都使用 SUSE 8.0版本 。每次后续测试都会包含一个新的内核、 调优或 Samba变化 。 所有测试都使用Ziff-Davis的 NetBench Enterprise Disk Suite基准程序。
文章插图
下面描述了上图中各列的名称:
- 基准配置(Baseline) 。 代表了 SUSE Linux企业级服务器 8.0版本(SUSE SLES 8)的一个干净安装 , 未对性能配置进行任何修改 。
- data=http://kandian.youth.cn/index/writeback 。对一个 Ext3默认挂接选项的配置加以改动 , 将/data文件系统(提供了 Samba共享)从 ordered改为writeback 。 这极大改进了文件系统在元数据密集的工作负荷下的性能 , 例如本例 。
- 闲鱼|电诉宝:“闲鱼”网络欺诈成用户投诉热点 Q3获“不建议下单”评级
- 峰会|这场峰会厉害了!政府企业专家媒体共议网络内容生态治理
- 网络覆盖|爱立信:2020年底,将有超过10亿人口获得5G网络覆盖
- 缩小|调整电脑屏幕文本文字显示大小,系统设置放大缩小DPI图文教程
- Win10系统桌面|手机桌面秒变Win10电脑系统,这波操作太给力了!
- 系统|电子邮箱系统哪家好?邮箱登陆入口是?
- 星期一|亚马逊:黑五与网络星期一期间 第三方卖家销售额达到48亿美元
- 车轮旋转|牵引力控制系统是如何工作的?它有什么作用?
- 机器人|网络里面的假消息忽悠了非常多的小喷子和小机器人
- iphone12|菜鸟网络原副总裁被捕!此前多名高管被判刑
