Chinaunix首页 | 论坛 | 博客
  • 博客访问: 92503
  • 博文数量: 21
  • 博客积分: 568
  • 博客等级: 中士
  • 技术积分: 175
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-31 10:29
文章分类
文章存档

2014年(1)

2012年(6)

2011年(14)

我的朋友

分类: 系统运维

2011-02-17 15:21:09

1. TCP卸载(TCP Segment Offload, TSO)

这种技术是将TCP数据的分段处理下放到网卡中进行,通过提高网卡的处理能力,象显卡中的GPU一样增加
一个网卡的NPU,上层只需要把数据下放,由NPU完成对TCP数据的分段操作,由此可减少CPU的负载,通常
TSO处理的数据大小是8K~64K字节。将这个技术扩展,使之不仅对TCP协议适用,而且可适用于其他协议
,就出现了GSO(Genenic Segment Offload),针对各种协议能通用化处理。目前Linux的2.6.18后的内核
都支持GSO,更早点的内核也能支持TSO。
2. RDMA(Remote Direct Memory Access)
RDMA扩展了DMA的概念,本地直接可以将数据直接发送到对方的应用程序的内存空间,而普通DMA是本地系
统范围内,将数据从外部设备数据空间放到系统内核的内存空间,还需要进一步处理解析然后拷贝到应用
程序的内存空间。RDMA就简化了这个拷贝过程,也能降低CPU的使用率。但RDMA这种处理是属于点对点的
拷贝,一般基于TCP实现,同时需要修改相关的应用,内核和网卡驱动的实现才能支持,而且安全方面也
是需要仔细考虑的因素。
3. Onloading
Onloading过程针对的是CPU和内存的速度不匹配的问题,现在的CPU频率都是上G,而内存大都只有几百M
,CPU快而内存慢,因此CPU从内存读取数据时必然会存在停等现象,造成CPU的使用率下降。Onloading技
术就是尽量减少CPU访问内存的操作,使用了两种方法,一种是新的DMA处理,内存数据移动不需要CPU参
与每个字节的移动,只需要逻辑处理,由内存设备实现数据的移动,CPU的参与就很少了;第2种方法是在
网卡中就将数据包的包头和负载分开使CPU能并行处理(在多CPU环境下)。Intel的I/OAT技术就是
Onloading技术的一个实现,软件上Linux 2.6.18内核后都支持,但硬件方面CPU必须是双核或4核的Xeon
处理器才支持,普通桌面CPU不支持。I/OAT技术专门为CPU优化了TCP/IP协议栈,使包头和负载并行处理
,减少了CPU计算负载,同时增强了DMA处理机制,使CPU使用率进一步下降,同时不需要修改应用的实现



阅读(735) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~