Intel 1000 网卡进阶使用Linux版
来源:互联网 发布:以前qq网络硬盘 编辑:程序博客网 时间:2024/06/05 20:40
http://supportapj.dell.com/support/edocs/network/IntelPRO/R231521/CS/e1000e.htm
Intel 1000 网卡进阶使用Linux版
Intel(R) Network Connection
Intel 1000 网卡进阶使用Linux版
来源:Linux 2.6 E1000_main.c
Intel 1000 drive
Intel 官方网站
整理:starshift
Intel 1000 网卡高级功能
InterruptThrottleRate
该参数用来控制网卡每秒钟能够产生的最大中断数目。参数的有效值为:0,1,3,100-100000 (0=off, 1=dynamic, 3=dynamic conservative) 默认值: 3 。增大中断的意义是显而易见的,降低CPU的使用率。但是同时也增加了数据包处理的延迟,这里的延迟主要指的是在缓冲区的排队延迟。
从7.3.x版本开始,驱动程序能够根据网络中的流量自适应地确定InterruptThrottleRate参数的值,这是网卡的参数应该设置为1或者3。在驱动程序中,实现根据网络流量动态确定InterruptThrottleRate值的算法是十分重要的。
算法周期性地接收到的数据包被分为三类:bulk traffic,low latency,lowest latency。其中:bulk traffic对应大部分数据包都是正常大小,或者说较大的数据包的情形。low latency对应存在很多较小数据包的情形,lowest latency对应大部分数据包都是小包的情形。
在dynamic conservative模式下,InterruptThrottleRate 在bulk traffic 下的值为4000,在low latency 和lowest latency 下按照每级20000的方式进行增长。这种模式适用于大部分的应用。
将本参数设置为0将关闭所有的中断动态调整,(可能也关闭了所有的中断)这时的工作状态适合大部分都是小包的情况,而不适合全部都是大包的情况。
注意:
1)InterruptThrottleRate 要比其它的参数如:TxAbsIntDelay和RxAbsIntDelay优先级高。也就是说,限制了转发和接受的绝对延迟也不能够超越之前的InterruptThrottleRate,也就是说不能够产生比InterruptThrottleRate更多的中断。
2) 当采用默认配置和有多个适配器同时工作时,CPU利用率可能呈非线性增长。为了限制CPU的利用率,同时不影响吞吐量,可以按照下述方式设置网卡驱动:
modprobe e1000e InterruptThrottleRate=3000,3000,3000
这里将第一个,第二个和第三个网卡的InterruptThrottleRate参数设为3000.对于大多数的系统来说,2000-3000通常是比较合适的值,但是最优值是和平台相关的。如果不在乎CPU利用率,可以使用RX_POLLING (NAPI)或者默认值。
RxIntDelay
Valid Range: 0-65535 (0=off)
Default Value: 0
以1.024微秒为单位延迟数据包所产生的中断。对于特定的网络流量而言,适当的设置该参数可以提高CPU的效率。增加这个值可以人为地增加数据帧到达的间隔,同时递减网卡的吞吐量。
注意:如果该参数设置成为非0 ,在某种情况下网卡可能会挂起。如果设置了NETDEV WATCHDOG的话,网卡可以自动reset。
RxAbsIntDelay
Valid Range: 0-65535 (0=off)
Default Value: 8
以1.024微秒为单位延迟数据包所产生的中断。仅当RxIntDelay为非0的时候有效。设置一帧在另外一帧接受后所需要的绝对延迟。
TxIntDelay
Valid Range: 0-65535 (0=off)
Default Value: 8
TxAbsIntDelay
Valid Range: 0-65535 (0=off)
Default Value: 32
发送时的中断延迟,同上两个。
Copybreak
Valid Range: 0-xxxxxxx (0=off)
Default Value: 256
Usage: insmod e1000e.ko copybreak=128
驱动程序会将小于或等于该值的数据包拷贝至一个fresh(新的?)接收缓冲区,之后再交给协议栈。
这个参数与其他的参数不同,多个适配器的时候也只设置一次((not 1,1,1 etc.))。参数对系统上所有的网卡都有效。同时在运行时也可以通过下面位置进行更改。
/sys/module/e1000e/parameters/copybreak
SmartPowerDownEnable
Valid Range: 0-1
Default Value: 0 (disabled)
允许在低电量的时候关闭物理层。
KumeranLockLoss
Valid Range: 0-1
Default Value: 1 (enabled)
是否省略重启。
其他设置
使用不同的配置
alias eth0 e1000e
alias eth1 e1000e
options e1000e Speed=10,100 Duplex=2,1
将eth0 配成10的全双工,eth1配成100的半双工。
链路信息
dmesg -n 8
注意:该配置重启后无效
Jumbo 帧
Jumbo 帧支持使用MTU使用比1500更大的帧大小,设置Jumbo帧的命令如下:
ifconfig eth mtu 9000 up
该配置重启后失效,长期配置请修改文件 /etc/sysconfig/network-scripts/ifcfg-eth
(RedHat Linux ,其他版本可能位置不同)。
注意:
1) 支持最大的Jumbo MTU设置为:9216
2) 使用Jumbo可能会降低性能。
Reference:
[1] Linux* Base Driver for Intel(R) Network Connection
[2] Interrupt Moderation Using Intel® GbE Controllers
- Intel 1000 网卡进阶使用Linux 版
- Intel 1000 网卡进阶使用Linux版
- linux 下使用intel mpi 进阶
- linux 使用intel mpi进阶(二)
- Intel 3945ABG 无线网卡 linux 解决
- 在Linux上安装Intel网卡驱动
- V370 Intel(R) WiFi Link 1000 BGN 无线网卡的安装 for linux
- Intel千兆网卡驱动Linux系统下安装方法
- linux 下 intel 82579LM 网卡驱动安装
- Linux系统安装网卡驱动(型号 Intel 82579v)
- Linux ixgbe 10G intel 网卡数据包处理流程
- linux(gentoo)内核编译-intel无线网卡驱动
- Linux ixgbe 10G intel 网卡数据包处理流程
- linux下intel 82579LM 网卡驱动安装
- Linux ixgbe 10G intel 网卡数据包处理流程
- Linux VLAN框架及其在Intel网卡I350的实现
- Linux ixgbe 10G intel 网卡数据包处理流程
- 手动安装Intel network I217-LM网卡的Linux驱动
- xml,jsp文件的注释快捷键
- 男人须知
- ajax的总结
- UBUNTU10.10安装TFTP服务端
- 编写可重入和线程安全的代码
- Intel 1000 网卡进阶使用Linux版
- svn client(64) server(32)的安装过程
- 全虚拟化和半虚拟化
- asp与php语法区别
- 好想与你天长地久,共度岁月
- Hudson poll scm 时间格式说明
- 一些略微复杂的sql语句
- 仿三星通话记录界面滑动拨号问题总结
- IOS 使用NTP时间同步服务