通过raw socket 测试网卡性能
来源:互联网 发布:蓝可儿事件真相 知乎 编辑:程序博客网 时间:2024/06/16 20:35
一 测试环境
硬件环境:
processors number: 8
vendor_id : GenuineIntel
model name : Intel(R) Xeon(R) CPU L5420 @ 2.50GHz
cpu MHz : 2490.000
cache size : 6144 KB
memory : 20G
NIC: Intel Corporation I350 Gigabit Network Connection × 4
操作系统:
Linux ubuntu88 3.11.0-15-generic #25~precise1-Ubuntu SMP Thu Jan 30 17:39:31 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
测试工具:
git@code.csdn.net:antony1776/packetsender.git
pktSender,基于PF_PACKET,c语言实现的数据包发送工具;
pktRcver,基于PF_RING,数据包接收工具;
二 测试目的
1 测试千兆网卡最大吞吐率,最大包接收速度,以及丢包率;
2 测试网卡满负荷时的cpu占用率;
三 测试步骤
1 开启数据接收程序:
#> pktRcver -i eth5 -e 1 -g 4
将网口 eth5 用于数据接收,并将该应用进程绑定到 CPU 4上,以观察该进程的 CPU 占用情况;
通过控制台输出,可以观察数据的实时接收情况。
2 开启数据发送程序 :
#> pktSender eth4 7 1000000
将网口 eth4 用于数据发送,并将该应用进程绑定到 CPU7 上,设置最大发包速率为 100w packet/s ;
四 测试结果
1 当设置数据包 payload 为 512 bytes 时,千兆网卡达到最大吞吐率,此时的实时速率为 1000Mbit/s,如下图所示:
但是此时的包速率只有 211834 (约等于21w)。
同时,pktRcver 进程的 cpu 占用率为 1.4%,pktSender 进程的 cpu 占用率为 26.8%;由此可见,数据接收对 cpu 的消耗并不大。
2 设置数据包 payload 为 1 byte,千兆网卡可以达到最大发包速率,此时的发包速率为 870240 packets/s (约等于 87 万),但是此时
的吞吐率并不大,只能达到 561.96 Mbit/s。同时,千兆网卡出现了一定程度的丢包,丢包率约等于 十万分之二。
相应的,pktSender 进程的 CPU 占用率达到了 100%,而 pktRcver 进程的 CPU 占用率只有 3.1%。可见,基于 PF_RING 的接收包工具
对 CPU 的需求并不是很大。
- 通过raw socket 测试网卡性能
- Linux中利用RAW SOCKET直接通过网卡收发数据
- Linux中利用RAW SOCKET直接通过网卡收发数据
- netio 网卡性能测试
- Raw Socket
- raw socket
- raw socket
- RAW SOCKET
- raw socket
- raw socket
- RAW SOCKET
- Raw Socket
- raw socket
- raw socket
- Raw Socket
- raw socket
- raw socket
- socket通过多网卡收发数据
- 栈应用2 中缀表达式转后缀表达式
- windows上传文件到远程linux
- ffmpeg 函数简单分析 : avcodec_register_all()
- Java中的阻塞队列
- Spring整合SpringMVC
- 通过raw socket 测试网卡性能
- 计算机网络中基于TCP服务器与客户端通信
- JAVA 使用相对路径读取文件
- 栈应用4 计算中缀表达式
- WinDbg命令常用命令(驱动)
- QPSO---收缩扩张系数的选择方案(未完待续)
- Apache Kafka0.10.0.0集群部署
- SIGTERM, SIGSEGV, SIGINT, SIGILL, SIGABRT, SIGFPE
- git 操作笔记