RH2288HV2安装redhat6.2 64位万兆网卡intel 82599丢包

发布时间:  2015-06-11 浏览次数:  807 下载次数:  0
问题描述

RH2288HV2安装redhat6.2 64位万兆网卡intel 82599丢包现场。

 

处理过程

在os下执行ifconfig -a 看到如下截图内容:



然后在执行ethtool -S eth4,打印见截图:

根因
网卡ring缓冲区参数过小(默认值512),当CPU关中断后buffer被填满,接收新数据到缓冲区后就无法处理而引起的丢包问题。通过增大ring缓冲区参数就能解决丢包问题。
解决方案

1. 在OS下执行ethtool -G eth2_1 tx 4096设置网卡发送回环参数。

2. 在OS下执行ethtool -G eth2_1 rx 4096设置网卡接收回环参数。

3. 网卡接收/发送回环参数是默认值(tx 512,rx 512),通过调整网卡ring缓冲区参数4096后,不再出现丢包,数据传输正常。

网卡ring缓冲区参数过小(默认值512),当CPU关中断后buffer被填满,接收新数据到缓冲区后就无法处理而引起的丢包问题。

通过调整网卡ring缓冲区参数4096后,不再出现丢包,数据传输正常。方法详见1.3节如何设置网卡发送/接收回环参数。

建议与总结
网卡收发数据过程简介:

网卡上存在缓存,用来存储收发的数据。当接到数据时,网卡会产生一个中断,并把数据保存在 internal buffer( 缓存),这时,CPU会过来把数据提走,并放在CPU的等待队列.这是接收数据的一般过程。发送数据也是利用了socket buffer和internal buffer。每个进程都会有一个socket buffer,用以保存进程数据。在发送数据时,socket buffer会copy一份给网卡的internal buffer,网卡是以比特流来传送数据的,这时,它会不断地把internal buffer 中的数据传送出去。

END