测带宽的工具_iperf:服务端吞吐量测试工具

服务端的性能测试一直是比较棘手的问题。 一. Iperf 概述 Iperf 是一个网络性能测试工具。 Iperf可以测试最大TCP和UDP带宽性能。 Iperf具有多种参数和UDP特性,可以根据需要调整。 Iperf可以报告带宽,延迟抖动和数据包丢失。 iperf 分为两种版本,unix/linux版和windows版,unix/linux版更新比较快,版本最新。 windows版更新慢。 windows版的iperf叫jperf,或者xjperf。 jperf是在iperf基础上开发了更好的UI和新的功能。 二. 测试环境搭建 了解测试需求(如果是对802.11n,了解测试模块的MIMO--也就是有几个天线),以及有线网口的规格(笔记本/AP是百兆网卡吗? 因为802.11n的速率可以达到100Mbps以上,如果是百兆网口,肯定会成为测试速率的瓶紧)事先确定HW 基础。 测试环境: 因为wifi是空中传播原因,为避免环境中其他无线AP 的信道干扰,请尽量在干净环境测试throughput A: 请尽量选择屏蔽房(Shield Room)中测试 B: 地下车库往往也是一个不错的选择(地下车库可搜索到的AP网络往往很少) C: 目前5G AP 尚少,亦可应用5G频带测试; (能够连上5G AP为准) D: 若上述条件均不可得,可尝试用Cable 直连,取代空中传播,但为避免打坏设备,需要加衰减器;  测试AP (Access Point无线路由)设定: 无线模式选择”802.11b/g/n” 信道带宽选择”20/40” 开启”Guard Interval” 注A, 双频带(20-MHz和40-MHz带宽) IEEE 802.11n通过将两个相邻的20MHz带宽捆绑在一起组成一个40MHz通讯带宽,在实际工作时可以作为两个20MHz的带宽使用(一个为主带宽,一个为次带宽,收发数据时既可以40MHz的带宽工作,也可以单个20MHz带宽工作)。 注B: Short Guard Interval(Short GI) Short GI(Guard Interval)是802.11n针对802.11a/g所做的改进。 射频芯片在使用OFDM调制方式发送数据时,整个帧是被划分成不同的数据块进行发送的。 为了数据传输的可靠性,数据块之间会有GI,用以保证接收侧能够正确的解析出各个数据块。 无线信号在空间传输会因多径等因素在接收侧形成时延,如果后续数据块发送过快,会和前一个数据块形成干扰。 而GI就是用来规避这个干扰的。 11a/g的GI时长为800us,而Short GI时长为400us,在使用Short GI的情况下,可提高10%的速率。 另外,Short GI与带宽无关,支持20MHz、40MHz带宽。 注C:关于理论吞吐量: a:不同标准理论传送吞吐量不同; b:实际传送带宽视环境,wifi系统会不同选择,40M带宽可获得更大throughput) 附: 不同网络的理论最大吞吐量参考: 18af507d89eb0242afb514751eecc3ce.png   802.11n的理论速率由于MIMO、Short GI 以及频宽的区别,会有不同是速率: 70c288a7fcce05bb6667592d47e5854c.png 三. 网络连线设定: 1.  Infra Network(基础网络构架): a. PC 通过Cable 连接AP Lan口,然后AP wifi连接待测Platform  注,请注意网口规格,是百兆或吉兆? b. PC 通过wifi 连接AP,然后AP wifi 连接待测Platform: 选择合适测试无线网卡,不能选择MIMO 规格低于测试AP的无线网卡;   (比如测试用2x2的AP,就不能选择1x1 的无线网卡,应该选择2x2或者3x的无线网卡) 2. 请在PC1/Platform 运行相应版本的iperf; 分别运行下面表格命令即可,由命令决定哪个平台做Server,哪个平台做Client。 0afea18f1454babef5162cf75e1e888d.png   注: a. 在TV 端,需要测试CPU loading,请在TV端iperf命令后加’&’ b. linux/Android 平台,测试CPU loading 用top 命令,会每隔5秒刷新CPU loading: (如下图是Android 平台截图,各项解释如下)。 19890eaad306e3ccc80d08f1c15abd0a.png User 35%, System 13%, IOW 0%, IRQ 0% // CPU占用率  User 109 + Nice 0 + Sys 40 + Idle 156 + IOW 0 + IRQ 0 + SIRQ 1 = 306 // CPU使用情况    PID CPU% S #THR VSS RSS PCY UID Name // 进程属性  xx  xx% x   xx  xx  xx  xx  xx   xx    CPU占用率:   User    用户进程  System  系统进程  IOW IO等待时间  IRQ 硬中断时间    CPU使用情况(指一个最小时间片内所占时间,单位jiffies。 或者指所占进程数):   User    处于用户态的运行时间,不包含优先值为负进程  Nice    优先值为负的进程所占用的CPU时间  Sys 处于核心态的运行时间  Idle    除IO等待时间以外的其它等待时间  IOW IO等待时间  IRQ 硬中断时间  SIRQ    软中断时间    进程属性:   PID 进程在系统中的ID  CPU%    当前瞬时所以使用CPU占用率  S   进程的状态,其中S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值是负数。   #THR    程序当前所用的线程数  VSS Virtual Set Size 虚拟耗用内存(包含共享库占用的内存)  RSS Resident Set Size 实际使用物理内存(包含共享库占用的内存)  PCY OOXX,不知道什么东东 。 UID 运行当前进程的用户id  Name 程序名称 android.process.media    // ps: 内存占用大小有如下规律: VSS >= RSS >= PSS >= USS // PSS  Proportional Set Size 实际使用的物理内存(比例分配共享库占用的内存)  // USS  Unique Set Size 进程独自占用的物理内存(不包含共享库占用的内存 c.  记录数据,请用平均值记录,如下图,选用0.0-300.0sec 的数据:   214ce51fd9a1d283a365de5e6497fc69.png

具体参数,欢迎加入QQ群,或者微信来交流。

0bfad9a489210430a2aa046ce3ce6475.png

d.  关于iperf 各项命令的意思: (重点解释与性能相关的命令) 通用参数 -f [kmKM] 分别表示以Kbits, Mbits, KBytes, MBytes显示报告,默认以Mbits为单位,eg: iperf -c 222.35.11.23 -f K -i sec 以秒为单位显示报告间隔,eg: iperf -c 222.35.11.23 -i 2 -l 缓冲区大小,默认是8KB,eg: iperf -c 222.35.11.23 -l 16 -m 显示tcp最大mtu值 -o 将报告和错误信息输出到文件eg: iperf -c 222.35.11.23 -o ciperflog.txt -p 指定服务器端使用的端口或客户端所连接的端口eg: iperf -s -p 9999;iperf -c 222.35.11.23 -p 9999 -u 使用udp协议 -w 指定TCP窗口大小,默认是8KB -B 绑定一个主机地址或接口(当主机有多个地址或接口时使用该参数) -C 兼容旧版本(当server端和client端版本不一样时使用) -M 设定TCP数据包的最大mtu值 -N 设定TCP不延时 -V 传输ipv6数据包 server专用参数 -D 以服务方式运行iperf,eg: iperf -s -D -R 停止iperf服务,针对-D,eg: iperf -s -R client端专用参数 -d 同时进行双向传输测试 -n 指定传输的字节数,eg: iperf -c 222.35.11.23 -n 100000 -r 单独进行双向传输测试 -t 测试时间,默认10秒,eg: iperf -c 222.35.11.23 -t 5 -F 指定需要传输的文件 -T 指定ttl值 附:

Iperf apk 界面:需要遥控在APK软键盘输入命令:

cce89dc2652dbefa1cde581c11e42a1b.png 更多技术问题,可以扫码加入知识星球「细说测试」来跟大咖们交流。

cf52d1f38222984db21b67b6a9dd8a50.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值