免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2955 | 回复: 2
打印 上一主题 下一主题

[C] 压力测试网卡速率疑问 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-04-25 19:30 |只看该作者 |倒序浏览
多线程程序中网卡设备读写速度不一致

假设PC有四张网卡,两张网卡接收数据,两张网卡发送数据。接收数据和发送数据属于两个不同的进程,通过unix domain socket进行通信。网卡上数据的接收和发送以TCP方式进行。

A) 当接收进程以一个线程从一个网卡接收数据而发送进程以一个线程往另一个网卡写的时候
    发送程序不堆包

B) 当接收进程以两个线程从一个网卡接收数据而发送进程以两个线程往另一个网卡写的时候
    发送程序缓慢堆包

C) 当接收进程以两个线程分别从两个网卡接收数据而发送进程以两个线程分别往另外两个网卡写的时候
    发送程序不堆包

发送程序的CPU使用状态在30%上下起伏。

网卡的发送速度和接收速度会有差异?或者是多线程的消耗?
接收程序中除了读取本地数据(read)和发送数据(writev, 因为其中有部分拼包信息,要略过包头)以及部分错误时的日志输出外没有其他IO操作。

求大神指点迷津

论坛徽章:
0
2 [报告]
发表于 2013-04-25 19:46 |只看该作者
补充一下,测试环境因为较为复杂,上述内容大概模拟了下整个流程。
目前千兆网卡发送速率在110MB/S,接收会稍快1M/S左右。接收和发送中间还有其他设备。堆包部分(持包时的增长内存)在发送程序上。

论坛徽章:
0
3 [报告]
发表于 2013-04-26 14:35 |只看该作者
你说的问题我估计没人能回答吧,现场环境千变万化,再说还有代码因素。多线程能不能提高效率只有自己测了才知道,谁知道你有没有锁等待,或者多线程引起了CACHE的乒乓效应。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP