服务器 频道

一剂良方克顽疾 英特尔I/O加速技术综述

  头痛不医头,第一代Intel I/O加速技术

  平台化策略使得英特尔不再仅以推出速度更快的处理器为满足,他们更加注重整个平台的协调和平衡,任何浪费都可能会让他们在提升处理器性能上所做的努力付之东流。所以,英特尔在去年推出Bensley平台的同时,也推出了英特尔I/O加速技术(I/OAT),充分表达了“以应用为中心的服务器I/O观点”。

  概括的来说,I/OAT是一个整合于系统平台中的用于移动数据、访问数据和降低网络I/O过程中系统开销的I/O解决方案。Intel I/OAT可以帮助从服务器应用程序中更快、更高效(占用更少的CPU周期)的获取数据。升级到支持I/OAT的平台,用户原来的应用程序立刻可以从中受益(比如可以同时访问更多的数据、处理更多用户的请求)而无需进行任何的修改。

  Intel I/OAT主要在三个方面解决网络I/O瓶颈:

  • 降低系统开销

  • 实现流线型内存访问

  • 优化TCP/IP协议计算

  Intel I/OAT通过适度的中断、适度的内存访问、并行计算、数据移动和减少上下文切换等措施来降低系统开销。比如通过预取操作来提升内存访问和数据移动效率,直接访问子系统可用于卸载数据移动和异步拷贝,TSO(TCP segmentation offload)运算转移给网卡(NIC)或者板载LAN控制器(LOM),并且在数据流和特定的处理器核心之间建立密切的联系。这些技术可以降低网络I/O过程中的CPU占用率,包括协议计算,并且明显的降低由于缓存未命中和Cache line bouncing所引起的CPU停滞。

英特尔I/OAT所涉及的方方面面

  如上图所示,Intel I/OAT涉及到服务器系统的方方面面:

  • Network Flow Affinity:分割网络堆栈处理并且动态的分配到多个物理或者逻辑CPU,这种方式可以使得数据得到更快的处理。

  • 异步低成本拷贝:采用了增强型DMA,可以用更少的CPU时钟从系统内存中的网卡缓冲区复制有效数据到应用程序缓冲区,节约下来的CPU资源可以进一步提升应用程序的负载能力。

  • 通过优化TCP/IP栈改进TCP/IP协议:主要优化分离封包头部和有效数据的处理。结合与栈相关的改进可以降低处理协议的时钟数量。

0
相关文章