性能测试过程中的网络带宽及流量监视讨论 网络流量监视软件
1. 概述
在性能测试过程中,随着B/S结构网络应用的越来流行,界面元素的不断丰富、系统并发用户量的不断增加,在性能测试过程中,对网络带宽的消耗越来越大。在测试中,如何以前得测试环境下的实际网络带宽情况;如何保证测试过程中不因为网络带宽造成系统的瓶颈从而影响性能测试结果的准确性,如何确认现有的网络传输设备在大负载下能够稳定的进行网络数据的传输与交换……在现在,已经成了性能测试中必须要考虑的一个问题。
2. 测试环境中最大网络流量的确定
2.1 最简单的网络流量测量方法
l 下载速度
最简单的网络流量测试,莫过于通过一些网络下载工具来对两点之间的网络传输带宽进行测试。比如使用Flashget(http/ftp)、flashFXP(ftp,上传/下载)等工具进行性能测试。
测试网络的下载带宽,如果采用HTTP协议,可以将一个较大的文件放置在应用中可以通过HTTP协议访问的目录下,然后通过下载工具下载这个文件,这样,就可以在下载工具的流量显示中,大体了解到当前网络的性能情况。同时,也可以采用FTP协议进行数据的下载,来测试网络的带宽情况(特别是在Unix、Linux环境下,由于系统默认都开通了FTP服务,所以,在通过这种方式测试带宽的时候,相对方便很多)。
l 上传速度
通过HTTP方式进行网络上传带宽的测试,一般相对较复杂,而且也不够准确,很难得出最网络最大上传带宽。这种情况下,一般通过FTP工具进行ftp文件的上传,通过这种方式来进行网络带宽的测试。
(图:使用FlashFXP进行网络下载的带宽测试)
采用这种方式进行测试,最大的一个优点就是简单易行,可以相当方便的对当前测试环境下的网络传输带宽进行。
而采用这种方式的缺点也很明显:测试结果不够准确。无法模拟多种网络请求下的网络带宽情况;无法进行大并发请求下复杂数据类型传输的网络带宽测试(特别是某些低档网络交换设备,在处理请求较少时,可以达到设备上标称的带宽,但是当并发请求数量增大之后,带宽迅速下降);无法提供一些相对详细的网络信息,如:震动、丢包率、最大段和最大传输单元大小等统计信息。
2.2 使用Ipref进行网络流量测试
Iperf 是一个 TCP/IP 和 UDP/IP 的性能测量工具,能够提供网络吞吐率信息,以及震动、丢包率、最大段和最大传输单元大小等统计信息;从而能够更好的帮助我们测试网络性能,定位网络瓶颈。
Iperf是一个免费的DOS下的命令行工具,这样,我们可以很方便的在Windows平台下使用这个工具,同时,他也是一个使用C与C++语言混合编写的开源软件,在SourceForge(project地址:http://sourceforge.net/projects/iperf)上可以下载到它最新的源码,我们在自己编译以后,就可以在各个操作系统上进行使用。
为了方便大家使用,在Sourceforge上也提供了一个用java开发出界面的Jperf(实际上就是用Java给 Iperf做了个shell程序)
(图:Jperf的界面)
下面先说说Iperf的使用参数。在命令行中输入:“iperf –h”,则会有如下的帮助信息:
Usage: iperf [-s|-c host] [options]
iperf [-h|--help] [-v|--version]
Client/Server:
-f, --format [kmKM] format to report: Kbits, Mbits, KBytes, MBytes
-i, --interval # seconds between periodic bandwidth reports
-l, --len #[KM] length of buffer to read or write (default 8 KB)
-m, --print_mss print TCP maximum segment size (MTU - TCP/IP heade
-o, --output <filename> output the report or error message to this speci
d file
-p, --port # server port to listen on/connect to
-u, --udp use UDP rather than TCP
-w, --window #[KM] TCP window size (socket buffer size)
-B, --bind <host> bind to <host>, an interface or multicast address
-C, --compatibility for use with older versions does not sent extra ms
-M, --mss # set TCP maximum segment size (MTU - 40 bytes)
-N, --nodelay set TCP no delay, disabling Nagle's Algorithm
-V, --IPv6Version Set the domain to IPv6
Server specific:
-s, --server run in server mode
-D, --daemon run the server as a daemon
-R, --remove remove service in win32
Client specific:
-b, --bandwidth #[KM] for UDP, bandwidth to send at in bits/sec
(default 1 Mbit/sec, implies -u)
-c, --client <host> run in client mode, connecting to <host>
-d, --dualtest Do a bidirectional test simultaneously
-n, --num #[KM] number of bytes to transmit (instead of -t)
-r, --tradeoff Do a bidirectional test individually
-t, --time # time in seconds to transmit for (default 10 secs)
-F, --fileinput <name> input the data to be transmitted from a file
-I, --stdin input the data to be transmitted from stdin
-L, --listenport # port to recieve bidirectional tests back on
-P, --parallel # number of parallel client threads to run
-T, --ttl # time-to-live, for multicast (default 1)
Miscellaneous:
-h, --help print this message and quit
-v, --version print version information and quit
[KM] Indicates options that support a K or M suffix for kilo- or mega-
The TCP window size option can be set by the environment variable
TCP_WINDOW_SIZE. Most other options can be set by an environment variable
IPERF_<long option name>, such as IPERF_BANDWIDTH.
注意:参数区分大小写
相关参数的简单中文解释如下(转自网络)
-s 以server模式启动,eg:iperf -s
-c host以client模式启动,host是server端地址,eg:iperf -c 222.35.11.23
通用参数
-f [k|m|K|M] 分别表示以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 c:iperflog.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 以服务方式运行ipserf,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值
备注:相关网络名词的详细说明,请参考TCP/IP协议相关内容
使用入门:
下面是以一种最基本的方式来使用Iperf进行网络带宽的测量。
需要测试网络带宽的两台机器上分别复制一份Iperf,其中一台作为Server,一台作为Client。
在Server端执行命令
iperf –s
此时,Server端的Iperf作为一个服务开始监听,等待Client端发过来的请求。默认监听端口5001,可以通过参数进行修改。
在Client端执行命令
iperf -c 192.168.1.101 #这个IP地址即为Server端的IP地址
下面是一个测试实例:
1)在server端运行“iperf –s”,则会有下面的显示
2) 另外启动一命令行窗口,执行“>iperf -c localhost -t 10 -i 1”。
命令解释:与在localhost的server端进行测试,测试时间10s,每1s统计一次数据
在客户端显窗口显示的内容会如下。
此时,server端显示如下
用Jperf作为客户端进行测试时,结果如下。其最大的优点是方便控制,显示结果比较直观。
相关链接:
http://dast.nlanr.net/projects/Iperf/
http://sourceforge.net/projects/iperf/
两个好像都是Iperf的网站,不过在Sourceforge上的更新较快,版本较新,但是未提供windows下的可执行文件,仅提供源代码。第一个网站上提供了1.7版本的exe文件。但是Jperf版本较低。
更多阅读
面试过程中的基本礼仪 日常基本礼仪常识
在现实生活中,服饰打扮、举止言谈、气质风度、文明礼貌,无一不在影响着你的形象,决定着你的前途和命运。由于举止得体,面试获得了机会,这个机会是工作机会也是学习机会,你将在工作中不断提高自己的能力。反之,如果在职场中不注重礼仪,本来很
如何合理界定企业登记过程中的书式审查与实质审查 实质审查
如何合理界定企业登记过程中的书式审查与实质审查文/吕伟明众所周知,工商行政管理部门依据《行政许可法》第十二条第一款第五项“企业或者其他组织的设立等,需要确定主体资格的事项”的规定来确定企业登记审批程序,而本法第二十九条
《论语》中的名言名句及使用情况 论语中的名言名句
论语中的名言名句及使用情况 1、阐述学习与思考关系的句子是:学而不思则罔,思而不学则殆。 2、生活中表示既善于从正面学习,也善于从反面借鉴的意思时,我们常引用《论语》中的话:择其善者而从之,其不善者
大学生在教学过程中的学习方法——课堂听讲法--大学生学习观--辽
大学生在教学过程中的学习方法——课堂听讲法新闻来源:原理海泛舟 发布时间:2008-7-14 14:30:24 浏览次数:193课堂听讲法,就是学生在课堂教学中怎样听好教师讲授内容的方法。课堂教学是学校理论教学的主要环节,在大学包括在电视大学和夜
有限公司变更为股份公司过程中的财务与法律问题_春晖投行在线吧_ 春晖投行在线论坛
有限公司变更为股份公司过程中的财务与法律问题 中汇会计师 0位粉丝 1楼实务中,股份公司作为一个民事法律主体,除少量系新设外,大部分均系由原来存续的有限责任公司整体变更而来。在有限公司变更为股份公司(以下简称整体变更)过程中,实务