Chinaunix首页 | 论坛 | 博客
  • 博客访问: 674068
  • 博文数量: 186
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 2648
  • 用 户 组: 普通用户
  • 注册时间: 2016-07-01 13:46
个人简介

鸟在笼中,恨关羽不能张飞;Survival of the fittest

文章分类

全部博文(186)

分类: LINUX

2014-09-26 16:08:01



ethtool -k < 网络接口>,可以看到很多网络接口的offload特性,例如:


ethtool -K comnic0 tso off


$ sudo ethtool -k eth0
Offload parameters for eth0:
rx-checksumming: on
tx-checksumming: on
scatter-gather: on
tcp-segmentation-offload: on
udp-fragmentation-offload: off
generic-segmentation-offload: on
generic-receive-offload: on
large-receive-offload: off


这些offload特性都是为了提升网络收/发性能。TSO、UFO和GSO是对应网络发送,在接收方向上对应的是LRO、GRO。


TSO


TSO(TCP Segmentation Offload),是一种利用网卡对TCP数据包分片,减轻CPU负荷的一种技术,有时也被叫做 LSO (Large segment offload) ,TSO是针对TCP的,UFO是针对UDP的。如果硬件支持 TSO功能,同时也需要硬件支持的TCP校验计算和分散/聚集 (Scatter Gather) 功能。






GSO


GSO(Generic Segmentation Offload),它比TSO更通用,基本思想就是尽可能的推迟数据分片直至发送到网卡驱动之前,此时会检查网卡是否支持分片功能(如TSO、UFO),如果支持直接发送到网卡,如果不支持就进行分片后再发往网卡。这样大数据包只需走一次协议栈,而不是被分割成几个数据包分别走,这就提高了效率。


GSO是TSO的增强 http://lwn.net/Articles/188489/ ,GSO不只针对TCP,而是对任意协议,尽可能把segmentation推后到交给网卡那一刻,此时会判断下网卡是否支持SG和GSO,如果不支持则在协议栈里做segmentation;如果支持则把payload直接发给网卡


ethtool -k lo


LRO


LRO(Large Receive Offload),通过将接收到的多个TCP数据聚合成一个大的数据包,然后传递给网络协议栈处理,以减少上层协议栈处理 开销,提高系统接收TCP数据包的能力。


GRO


GRO(Generic Receive Offload),基本思想跟LRO类似,克服了LRO的一些缺点,更通用。后续的驱动都使用GRO的接口,而不是LRO。


RSS


RSS(Receive Side Scaling),是一项网卡的新特性,俗称多队列。具备多个RSS队列的网卡,可以将不同的网络流分成不同的队列,再分别将这些队列分配到多个CPU核心上进行处理,从而将负荷分散,充分利用多核处理器的能力。


http://www.ibm.com/developerworks/cn/linux/l-cn-network-pt/
阅读(1483) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

thy_shenzhen2015-03-08 23:49:14

这几个参数默认是关闭的。问题是启用后会带来什么负面影响?

评论热议
请登录后评论。

登录 注册