+-
大量传送减负,优化网络性能:网卡参数名词释义及建议设置

网卡是非常关键的一环,他就好像电脑的数据线。只是这根数据线远远比SATA数据线复杂的多,不只存在接触好不好的问题,还存在设置好不好的问题,设置好了,速度快,稳定,设置不好,问题也会多样,而复杂。ok,废话终了,进入正题!

参数名词释义:

流程控制、流控制、FlowControl :

这个选项基本上所有网卡都会有,但是叫法会有些差别,比如Realtek网卡叫做流控制,Intel网卡叫做流程控制,还有一些网卡选项干脆是英文的,叫做FlowControl,很多交换机上也有这个功能,也叫做FlowControl,而在下面的理论解释中就简称流控制,这样可以少打一个字。
网卡自身支持的流控制和我们所说的Qos不一样,虽然目的可能是一样的。网卡或交换机支持的流控制也是一个IEEE标准,叫做802.3x全双工以太网数据链路层的流控,因为它是个电子电器标准,所以交换机,网卡这类以太网设备是都支持的,而且也都遵循这个802.3x标准,这个标准的核心作用就是防止网络拥堵时导致的“丢包”问题,大致的工作原理就是当链路两端的设备有一端忙不过来了,他会给另外一端的设备发一个暂停发包的命令,通过这种方式来缓解压力,解决丢包问题。)

看上去流控制应该是个非常好的防止丢包的方法,但是为什么我们还要关闭他呢?原因很简单,因为现在的几乎所有软件都支持“数据包重发”功能,也就是说如果电脑发现有丢包情况,或者服务端发现有丢包情况,都会重新请求,根本不需要网卡再去管闲事.
因为流控制,出了问题,因为数据等待问题,电脑卡了,因为无盘服务端始终发不出数据包,结果服务端可能也挂了,而这,就是流控制为什么会影响电脑的原因,所以无论是服务器,客户机,交换机,只要有流控制的地方,就一定要关闭掉!
巨型帧、巨帧数据包、Jumboframe :

这个网卡参数基本上也是所有网卡上都有,也会因为网卡品牌不同,叫法不同,比如Realtek就叫巨型帧,Intel网卡就叫巨帧数据包,有些老版本的网卡驱动显示的是英文,叫做Jumboframe。下文中也是为了少打字,就叫巨帧了。
前两个网卡参数提到的参数都是由IEEE创立国际标准协议基础上开发的,而这个巨帧并非一个国际标准,而是通讯设备公司之间自己商定的一个非主流标准,所谓巨帧是一种超长帧格式,专门为千兆以太网而设计,以太网标准的最大帧长度为1518字节,而Jumbo Frame的长度各厂商有所不同,一般最小的有2KB,大一点的有9KB左右。那么这个巨帧有什么好处呢?
使用巨帧可以有效减少网络中数据包的个数,从而提升传输效率,降低网络设备处理“包头”的而外负担。这就是巨帧为什么能提升光网络传输效率的原因。
相信大家关注过交换机有个参数叫做包转发率,但是并没有限制包大小,也就是大包,小包其实并不会严重影响转发效率,因此,如果单位时间内可以传输多个比较大的数据包,传输数据量自然就会多,而最终软件显示的速度也会变快,以刚才的hdspeed测速为例:
64k块的速度有64MB/S,那么实际上这个网络通道每秒可传输64*1024/64=1024个64K的数据包,假如在没有丢包的情况下,每秒能传输1024个128k的数据包时,网络传输速度理论就能达到128MB/S的速度,也就是翻一倍!
说到这里肯定很多人心动了,赶紧去开巨帧,来提升速度,但是不要忘记,这只是理想状态,而实际上再好的网络也会有丢包,在有丢包的情况下,你单个传输的数据包越大,丢失一个数据包造成的影响也就越大,而带来的问题也就是传输速度越不稳定,所以巨帧如果在“理想环境下”是非常好的技术,如果在不理想的环境下,无疑是一种灾难,同时巨帧并非一个行业标准,而是每家的标准都不大一样,如果使用不同厂家提供的硬件设备,就可能因为存在单个帧长度不同而带来的速度波动严重问题。
而实际上,有哪家电脑能够做到网卡,网线,交换机都是一家厂商出的?实际上没有,因此巨帧对于个人用户来说还是关闭的好。
这里给大家一个小经验,Intel 82574L网卡做服务器开4K巨帧,Realtek网卡做客户机开2K巨帧,在使用一些傻瓜交换设备时,测速可能会有一些提升噢,不过这些提升一般不足以优化客户体验,如果感兴趣的同学,可以玩一玩。

大量传送减负、中断节流率、中断模式 :

上面这些网卡参数本身的功能并不一样,但实际上目的都一样的,或者说是互相合作的关系,首先解释一下大量传送减负,这个选项在Realtek网卡上是存在的。
举个例子,大家知道一个PC上是有一个CPU负责运算,而一个网卡实际本身也是存在具备CPU运算功能的,所谓的网卡吞吐能力,响应能力实际上就是网卡芯片自身的运算能力的体现。但是在早期,网卡芯片的处理能力很一般,所以有些网卡上就有个选项,具体名字忘记了,大致意思就是网卡性能优化时,是以降低CPU为优化指标,还是以IO性能为优化指标,是上这就是和现在说的大量传送减负作用是一样的,那么大量传送减负,减的是谁的负担?实际上是CPU的负担,如果一旦网卡处理的数据过多时,就会耗费一些CPU资源来做运算,为了降低CPU网络传输速度过快而导致的CPU压力上升,也就有了大量传送减负这个功能,开了他,就会在传输速度过高时自动降速,关了他就会发挥网卡最高性能。
而现在CPU的运算能力已经很好,所以没必要为了降低CPU使用率而去放弃高性能的网络传输速度,这完全是一个过时的功能。实际上标题里的中断节流率、中断模式的作用和大量传送减负的作用是完全一样的,都是为了防止网络传输速度过快时而导致CPU使用率上升问题而开发,比如Intel网卡里这个功能参数就叫做“中断节流率”,而在说明中也详细了解释了这个功能的好处和坏处

当你的电脑最差也用i5,好一点在用i7,更牛b的都开始双CPU的时候,你觉得还有必要为了降低CPU压力过大问题,而去降低网卡性能吗?当然话分两头说,如果你的电脑还是比较烂的CPU,那还是默认不去修改的好,以免上高峰时,出现电脑CPU使用率高而导致全场秒卡问题,甚至电脑挂掉的问题……
根据自己非常不严谨的测试,关闭该参数,至少可以提升5MB/S的网络传输速度。

硬件效验、适应性帧间距调整、TCP/UDP校验:

说到最后一个网卡参数了,从网卡参数描述上,基本大家都能明白,这是一个效验功能,他的作用实际上就是为了防止在网络环境不好的情况下,解决数据包损坏,丢帧的问题。在这里又要引入2个概念,就是TCP和UDP,TCP和UDP的特点:
TCP:传输控制协议,提供的是面向连接、可靠的字节流服务。
当客户和服务器彼此交换数据前,必须先在双方之间建立一个TCP连接,之后才能传输数据。TCP提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能从一端传到另一端。
UDP—用户数据报协议,是一个简单的面向数据报的运输层协议。
UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地。由于UDP在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,故而传输速度很快。

那这个TCP、UDP和效验啥关系呢?TCP协议本身就有效验功能,并不需要网卡在中间搞一道,即便需要效验,也是UDP需要效验,防止传输过程中出现坏包导致的数据损坏问题,TCP完全不需要,而在电脑上来说,只要开机之后,每个数据包都是非常关键的,因此大多数电脑都会采取TCP协议来保证可靠性,所以并不需要这个效验功能,同时,做包效验也是好要耗费资源运算的,说恶劣一点,为了这样一个画蛇添足的功能而去浪费宝贵的资源,纯属一种浪费!所以电脑上,带有效验字样的网卡参数完全可以关闭掉!
不过话说回来,做人做事,不能做的太绝,就像说话一样,也不能说太绝,这个效验功能虽然看上去绝大多数情况下,是百无一用,但是能说它百无一用是在了解他的特性之后,比如,如果是使用UDP协议的软件,可能在网络状况较差的情况下,不开启效验功能,就可能导致出问题。

建议设置:

网卡品牌 参数名称(中英文对照) 设置要求

Realtek网卡

EEE 建议关闭
巨型帧/Jumboframe 建议关闭
流控制/FlowControl 建议关闭
大量传送负载/OffloadLargesend 建议关闭
环保节能/GreenEthernet 建议关闭
硬件效验和/OffloadChksum 建议关闭

Intel网卡

TCP/IP分载选项 分载接收IP效验和/ChecksumRxIp 建议关闭
分载接收TCP效验和/ChecksumRxTcp 建议关闭
分载传输IP效验和/ChecksumTxIp 建议关闭
分载传输TCP效验和/ChecksumTxTcp 建议关闭
分载TCP分段/TcpSegmentation 建议关闭
流程控制/FlowControl 建议关闭
适应性帧间距调整/AdaptiveIFS 建议关闭
中断节流率/InterruptThrottleRate 建议关闭
巨帧数据包/JumboPacket 建议关闭

Marvell网卡

巨帧包/JumboPacket 建议关闭
卸载 TCP/UDP 校验和 (IPv4)/TCPUDPChecksumOffloadIPv4 建议关闭
大量传送负载 (IPv4)/LsoV1IPv4 建议关闭
中断模式/InterruptModeration 建议关闭
流控制/FlowControl 建议关闭
能源之星/WakeUpSpeed 建议关闭