liwei_swjtu 发表于 2015-02-11 14:11

直连PC和通过交换机连PC网卡性能差异

本帖最后由 liwei_swjtu 于 2015-02-11 16:10 编辑

遇到一个比较怪异的问题,如下描述:
一台嵌入式Linux设备,出百兆网口,用iperf作性能测试工具。做如下测试:

1.PC机(windows端)作iperf服务端,linux设备做客户端,均使用TCP连接进行测试。
a)将设备与PC机直接连接,使用iperf进行测试,结果为10Mbits/s左右;
b)通过交换机将PC与设备连接,使用iperf,参数相同进行测试,结果为86Mbits/s左右。

2.PC机(windows端)作iperf客户端,linux设备作服务器,均使用TCP连接进行测试。
a)将设备与PC机直接连接,使用iperf进行测试,结果为92Mbits/s左右;
b)通过交换机将PC与设备连接,使用iperf,参数相同进行测试,结果为92Mbits/s左右。

查看了两种连接状态下设备上的网口速率,均为100M。

目前暂没有其他思路,请各位帮忙看看,感激不尽!

liwei_swjtu 发表于 2015-02-11 16:10

顶一下,求思路。

liwei_swjtu 发表于 2015-02-13 11:00

再顶一下。求思路。

liwei_swjtu 发表于 2015-03-14 16:17

问题已经定位,是由于在定义ETH设备的DMA RXTX链环大小不一致引起,但至于为什么两者不一致会引起这个问题,还在找原因,有人有碰到过类似问题的吗?

songjyf 发表于 2016-07-23 13:21

这个问题,解决了吗?我也遇到了同样的问题。能否说一下是如何决绝的。

Godbach 发表于 2016-07-23 21:55

回复 5# songjyf

LZ 四楼提到了问题的原因啊。你对照调整一下试试


   

nswcfd 发表于 2016-07-25 15:20

比较好奇case 1/a, 丢包发生在哪端? linux or windows?瓶颈是rx还是tx?

songjyf 发表于 2016-07-25 15:50

我是用stm32+lwip,通过交换机连接PC,在ram中造数据发送,速度可达9MB/s。但是如果直接连到PC上,速度只有几百k。通过抓包工具查看,有丢包现象。重传比较严重。我用的是TCP通讯。

然后尝试将单片机的发送速度降下来。PC那边接收速度就会有提升。大概可以达到3MB/s.

所以怀疑是,PC端的接收缓冲区不不够大,用setsockopt,设置接收缓存为128K。情况也没有什么好转。


至于是,DMA的TX,RX链大小不一致,具体是指那一边,是arm+linux的RXTX链不一致,还是和PC端的不一致?

nswcfd 发表于 2016-07-26 15:25

纯udp通信,两个方向有区别么?

nswcfd 发表于 2016-07-26 15:29

如果是丢包导致的重传的话,估计问题在rx端,那样的话,指的是PC端的网卡队列长度吧?windows下对应linux ehtool -g/-G的配置?
页: [1] 2
查看完整版本: 直连PC和通过交换机连PC网卡性能差异