当前位置: 技术问答>linux和unix
嵌入式 linux 网速慢问题
来源: 互联网 发布时间:2016-04-24
本文导语: 千兆网卡网速太慢,具体情况如下: 一、测试机(A)环境 硬件:CPU 400MHz,内存128M,PCI千兆网卡,SATA硬盘。 系统:LINUX。 二、另一PC(B)环境 硬件:CPU2.0GHz,内存1.5G,集成千兆网卡,SATA硬盘。 系统:LINUX。 三、...
千兆网卡网速太慢,具体情况如下:
一、测试机(A)环境
硬件:CPU 400MHz,内存128M,PCI千兆网卡,SATA硬盘。
系统:LINUX。
二、另一PC(B)环境
硬件:CPU2.0GHz,内存1.5G,集成千兆网卡,SATA硬盘。
系统:LINUX。
三、网卡已手动设置了全双工1000M模式 。
四、两机用千兆网线(6类线)直连测试
五、测试方法-2:A机上运动 wgetnull -O /dev/null ftp://***.***.***.***/test.tar。
(***.***.***.***为另一PC(B)机IP,B上启FTP服务,wgetnull 程序为自己用wget源码修改的,修改的地方是让通过FTP下载的数据不写到硬盘只写到内存,意思是只测网络到内存的速度)
测试结果:速度为15.6Mbyte/s左右。
问题:
1、千兆网卡原论上125Mbyte的速度,而目前只有15.6Mbyte/s,请问这个数据是否正常,为什么?
2、这个网卡驱动我看了,有POLL方式,有零拷贝,可以说这驱动没什么可改,已经是最优了。如不看CPU的性能,这个速度有没有再优化的可能?在从哪几个方面去考虑?
3、是否这和PCI上的速度有关,如果是,怎么去测试?怎么去解决?
一、测试机(A)环境
硬件:CPU 400MHz,内存128M,PCI千兆网卡,SATA硬盘。
系统:LINUX。
二、另一PC(B)环境
硬件:CPU2.0GHz,内存1.5G,集成千兆网卡,SATA硬盘。
系统:LINUX。
三、网卡已手动设置了全双工1000M模式 。
四、两机用千兆网线(6类线)直连测试
五、测试方法-2:A机上运动 wgetnull -O /dev/null ftp://***.***.***.***/test.tar。
(***.***.***.***为另一PC(B)机IP,B上启FTP服务,wgetnull 程序为自己用wget源码修改的,修改的地方是让通过FTP下载的数据不写到硬盘只写到内存,意思是只测网络到内存的速度)
测试结果:速度为15.6Mbyte/s左右。
问题:
1、千兆网卡原论上125Mbyte的速度,而目前只有15.6Mbyte/s,请问这个数据是否正常,为什么?
2、这个网卡驱动我看了,有POLL方式,有零拷贝,可以说这驱动没什么可改,已经是最优了。如不看CPU的性能,这个速度有没有再优化的可能?在从哪几个方面去考虑?
3、是否这和PCI上的速度有关,如果是,怎么去测试?怎么去解决?
|
1、应该是有问题
2、建议自己写个简单的C/S程序来测(应该不会超过200行),请确认里面不会有睡眠而导致的网络速度测试失败
读到数据就扔掉(考虑将每次读数据的缓冲区/发送数据缓冲区 分别修改成不同值(如1024/4096等),测试,观察
3、应该有关系,不过估计影响不到你的测试(试想,如果系统总线的速度都这么差的话。。。。)
2、建议自己写个简单的C/S程序来测(应该不会超过200行),请确认里面不会有睡眠而导致的网络速度测试失败
读到数据就扔掉(考虑将每次读数据的缓冲区/发送数据缓冲区 分别修改成不同值(如1024/4096等),测试,观察
3、应该有关系,不过估计影响不到你的测试(试想,如果系统总线的速度都这么差的话。。。。)
|
建议用netperf这个工具去测。
看看测出来数据怎样的。
看看测出来数据怎样的。
|
所谓1000M 是bps 不是Bps 而且是包含无用数据的速率 就是说是电口的波特率而已 而且那是能够达到的最高峰值
再者网络速率跟系统本身也有一定关系
再者网络速率跟系统本身也有一定关系
|
内核是不是支持千M的呢?