属性的字符串。 -Ccookie-name=value 对请求附加一个"Cookie: "头行。 其典型形式是name=value的一个参数对。 此参数可以重复。 -Hcustom-header 对请求附加额外的头信息。 此参数的典型形式是一个有效的头信息行,其中包含了以冒号分隔的字段和值(如: "Accept-Encoding: zip/zop;8bit")。 -Aauth-username: password 向服务器提供基本认证信息。 用户名和密码之间由一个": "隔开,并将被以base64编码形式发送。 无论服务器是否需要(即是否发送了401认证需求代码),此字符串都会被发送。 -Pproxy-auth-username: password 对一个中转代理提供基本认证信息。 用户名和密码由一个": "隔开,并将被以base64编码形式发送。 无论服务器是否需要(即是否发送了407代理认证需求代码),此字符串都会被发送。 -Xproxy[: port] 对请求使用代理服务器。 -V 显示版本号并退出。 -k 启用KeepAlive功能,即在一个HTTP会话中执行多个请求。 默认不启用KeepAlive功能。 -d 不显示"percentageservedwithinXX[ms]table"消息(为以前的版本提供支持)。 -S 不显示中值和标准偏差值,而且在均值和中值为标准偏差值的1到2倍时,也不显示警告或出错信息。 默认时,会显示最小值/均值/最大值等数值。 (为以前的版本提供支持) -ggnuplot-file 把所有测试结果写入一个"gnuplot"或者TSV(以Tab分隔)文件。 此文件可以方便地导入到Gnuplot,IDL,Mathematica,Excel中。 其中的第一行为标题。 -ecsv-file 产生一个逗号分隔(CSV)文件,其中包含了处理每个相应百分比请求(从1%到100%)所需要的相应百分比时间(以微秒为单位)。 由于这种格式已经"二进制化",所以比"gnuplot"格式更有用。 -h 显示使用方法的帮助信息。 1.2.举例 ab-c10-n10-t30 输出样例: ThisisApacheBench,Version2.0.40-dev<$Revision: 1.146$>apache-2.0 Copyright1996AdamTwiss,ZeusTechnologyLtd, Copyright2006TheApacheSoftwareFoundation,http: //www.apache.org/ Benchmarking(bepatient) Finished779requests ServerSoftware: gws ServerHostname: //服务器主机名 ServerPort: 80 //服务器端口 DocumentPath: / //测试的页面文档 DocumentLength: 458bytes //文档大小 ConcurrencyLevel: 10 //并发数 Timetakenfortests: 30.87239seconds //整个测试持续的时间 Completerequests: 779 //完成的请求数量 Failedrequests: 0 //失败的请求数量 Writeerrors: 0 Non-2xxresponses: 779 Totaltransferred: 1004131bytes //整个场景中的网络传输量 HTMLtransferred: 356782bytes //整个场景中的HTML内容传输量 Requestspersecond: 25.89[#/sec](mean) //大家最关心的指标之一,相当于LR中的每秒事务数,后面括号中的mean表示这是一个平均值 Timeperrequest: 386.229[ms](mean) //大家最关心的指标之二,相当于LR中的平均事务响应时间,后面括号中的mean表示这是一个平均值 Timeperrequest: 38.623[ms](mean,acrossallconcurrentrequests) //每个请求实际运行时间的平均值 Transferrate: 32.57[Kbytes/sec]received //平均每秒网络上的流量,可以帮助排除是否存在网络流量过大导致响应时间延长的问题 ConnectionTimes(ms) minmean[+/-sd]medianmax Connect: 36167100.1132735 Processing: 62215143.6171910 Waiting: 61203117.4167909 Total: 98382175.83441243 //网络上消耗的时间的分解,各项数据的具体算法还不是很清楚 /*下面的内容为整个场景中所有请求的响应情况。 在场景中每个请求都有一个响应时间,其中50%的用户响应时间小于3064毫秒,60%的用户响应时间小于3094毫秒,最大的响应时间小于3184毫秒*/ Percentageoftherequestsservedwithinacertaintime(ms) 50%344 66%395 75%451 80%520 90%626 95%716 98%931 99%977 100%1243(longestrequest) 2.webbench webbench是有名的网站压力测试工具,它是由Lionbridge公司()开发。 它的帮助文件和文档请到: http: //home.tiscali.cz/~cz210552/webbench.html上查看。 Webbech能测试处在相同硬件上,不同服务的性能以及不同硬件上同一个服务的运行状况。 webBech的标准测试可以向我们展示服务器的两项内容: 每秒钟相应请求数和每秒钟传输数据量。 webbench不但能具有便准静态页面的测试能力,还能对动态页面(ASP,PHP,JAVA,CGI)进行测试的能力。 还有就是他支持对含有SSL的安全网站例如电子商务网站进行静态或动态的性能测试。 2.1.参数说明 -f–force 不等服务器回复 -r–reload 发送重新load请求,等同于Pragma: no-cache. -t–time 测试所进行的最大秒数。 默认30。 -p–proxy 使用代理服务器 -c--clients 一次产生的请求个数。 默认是1。 -9--http09 使用http/0.9协议 -1--http10 使用http/1.0协议 -2–http11 使用http/1.1协议 --get 使用get请求方法 --head 使用head请求方法 --options 使用options请求方法 --trace 使用trace请求方法 -? –h–help 显示帮助信息 -V–version 显示程序的版本信息 2.2.例子 webbench-c100-t30 输出样例: Webbench-SimpleWebBenchmark1.5 Copyright(c)RadimKolar1997-2004,GPLOpenSourceSoftware. Benchmarking: GET 100clients,running30sec. Speed=4028pages/min,86577bytes/sec. Requests: 2014susceed,0failed. 3.http_load 程序非常小,解压后也不到100K http_load以并行复用的方式运行,用以测试web服务器的吞吐量与负载。 但是它不同于大多数压力测试工具,它可以以一个单一的进程运行,一般不会把客户机搞死。 还可以测试HTTPS类的网站请求。 官网: 下载地址: wget 3.1.参数说明 -parallel简写-p: 含义是并发的用户进程数。 -fetches简写-f: 含义是总计的访问次数 -rate 简写-r: 含义是每秒的访问频率 -seconds简写-s: 含义是总计的访问时间 3.2.例子 http_load-p20-f20.url 输出样例: 20fetches,20maxparallel,790105bytes,in4.34421seconds //说明在上面的测试中运行了20个请求,最大的并发进程数是20,总计传输的数据是790105bytes,运行的时间是4.34421秒 39505.2meanbytes/connection //说明每一连接平均传输的数据量790105/20=39505.2 4.60383fetches/sec,181875bytes/sec //说明每秒的响应请求为4.60383,每秒传递的数据为181875bytes/sec msecs/connect: 305.351mean,3151.05max,146.267min //说明每连接的平均响应时间是305.351msecs,最大的响应时间3151.05msecs,最小的响应时间146.267msecs msecs/first-response: 772.81mean,1555.86max,155.245min HTTPresponsecodes: code200--20 //说明打开响应页面的类型,如果403的类型过多,那可能要注意是否系统遇到了瓶颈。 4.Siege 虽然Apache自带一个压力测试工具ab,但是ab的功能太简单了,无法模拟真实的web访问,所以我们要用到更加强大的web压力测试工具——Siege。 Siege(英文意思是围攻)是一个压力测试和评测工具,设计用于WEB开发这评估应用在压力下的承受能力: 可以根据配置对一个WEB站点进行多用户的并发访问,记录每个用户所有请求过程的相应时间,并在一定数量的并发访问下重复进行。 Siege时一个开放源代码项目: http: //www.joedog.org/siege/下载: wgetftp: //sid.joedog.org/pub/siege/siege-latest.tar.gz 4.1.参数说明 -cNUM 设置并发的用户(连接)数量,比如-c10,设置并发10个连接。 默认的连接数量可以到~/.siegerc中查看,指令为concurrent=x,前面咱们已经调整了默认并发连接为50。 -rNUM (repetitions),重复数量,即每个连接发出的请求数量,设置这个的话,就不需要设置-t了。 对应.siegerc配置文件中的reps=x指令 -tNUM (time),持续时间,即测试持续时间,在NUM时间后结束,单位默认为分,比如-t10,那么测试时间为10分钟,-t10s,则测试时间为10秒钟。 对应.siegerc中的指令为time=x指令 -b (benchmark),基准测试,如果设置这个参数的话,那么delay时间为0。 在.siegerc中咱们修改为默认开启。 -furl.txt (file),这是url列表文件。 对应.siegerc配置文件中的file=x指令 4.2.例子 siege-c20-r20-f.url .url内容: 输出样例: Liftingtheserversiege…done. Transactions: 400hits//完成400次处理 Availability: 100.00%//100.00%成功率 Elapsedtime: 34.61secs//总共用时 Datatransferred: 3.94MB//共数据传输3.94MB Responsetime: 1.37secs//相应用时1.37秒: 显示网络连接的速度 Transactionrate: 11.56trans/sec//平均每秒完成11.56次处理: 表示服务器后台处理的速度 Throughput: 0.11MB/sec//平均每秒传送数据0.11MB Concurrency: 15.87//实际最高并发数15.87 Successfultransactions: 400//成功处理次数 Failedtransactions: 0//失败处理次数 Longesttransaction: 11.13//每次传输所花最长时间 Shortesttransaction: 0.34//每次传输所花最短时间 5.对比 输出压力的能力: 软件 每秒处理数 webbench 4876 ab 4059 http_load 3148 siege 1822 从上面可以看过,webbench能力最强,ab紧接着来的。 其它的压力软件,能打出的每秒的能力差些。 功能对比 针对一些常用的功能,进行了一下对比,方便我们选择自己合适的测试软件。 自定义http头 url列表 随机URL https支持 KeepAlive cookie支持 HTTP1.0/1支持 认证支持 时间测试压力 webbench yes yes ab yes yes yes yes http_load yes yes yes yes siege yes yes yes yes 6.TIPS 1)实际的测试过程中,我们一般都是采用A、B两台机器,一台跑Web服务,另外一台跑ab测试。 也有的情况是单机对单机可能测不出结果,那就要采用很多台机器同是跑AB去请求一台机器进行测试,根据多台机器反馈的结果才能够得出一个科学的测试结果。 做压力测试时,该软件自身也会消耗CPU和内存资源,为了测试准确,请将测试软件安装在别的服务器上。 2)不要测试上线之后的网站,压垮了可不好玩。 3)ab-n100-c10——(注意,这里要保留"/"根目录哦);webbench也是一样。
展开阅读全文
相关搜索
|