注:我这次用的是PHP,下次试试golangab命令是一个测试你的Apachehttp服务器的工具,你可以用这个工具来指定单位时间内发送给apache的请求数见您的Apache与您的机器配合得如何。安装命令:yum-yinstallhttpd-tools查看版本:ab-v测试环境:aliyun4h8g语言:PHP5.6printecho111;ab-n10000-c1000http://api.xxx.com/test.php[root@xxx~]#ab-n10000-c1000http://api.xxx.com/test.php#指定1000并发请求和10000个总请求,用于http://api.xxx.com/test.php/压力测试这是ApacheBench,版本2.3<$Revision:655654$>版权所有1996AdamTwiss,ZeusTechnologyLtd,http://www.zeustech.net/LicensedtoTheApacheSoftwareFoundation,http://www.apache.org/Benchmarkingapi.e-power.vip(耐心点)Completed1000requestsCompleted2000requestsCompleted3000requestsCompleted4000requestsCompleted5000requestsCompleted6000requestsCompleted7000requestsCompleted8000requestsCompleted9000requestsCompleted10000requests#这个地方是注意点之一,如果全部完成,说明服务器可以处理我们指定的请求量Finished10000requests#我们可以继续增加请求数进行测试,直到可以处理一下吧,是可以处理的最大请求服务器软件:nginx#服务器软件ServerHostname:api.xxx.com#DomainnameServerPort:80#RequestportnumberDocumentPath:/test.php#FilepathDocumentLength:162bytes#PagebytecountConcurrencyLevel:1000#Requestconcurrentnumber测试时间:0.717seconds#总访问时间Completerequests:10000#NumberofsuccessfulrequestsFailedrequests:0#Numberoffailedrequests(**重点**,如果有失败就差不多)写入错误:0Non-2xxresponses:10326Totaltransferred:3149430bytes#Requesttotaldatasize(includingheaderinformation)HTMLtransferred:1672812bytes#HTMLpageactualtotalbytesRequestspersecond:13954.77[#/sec](mean)#每秒请求多少次,这是一个很重要的参数值,serverthroughput(**focus**)#Requestspersecond这个值表示当前机器的整体性能,值越大越好#吞吐率,计算公式:Completerequests/Timetakenfortests请求总数/处理这些请求所花费的时间##最关心的一个指标:相当于LR中每秒的事务数/throughput——多少个请求persecond,这是一个很重要的参数值,服务器的吞吐量Timeperrequest:71.660[ms](mean)#Useraveragerequestwaitingtime##第二个最关心的指标:平均用户请求等待时间(averageTransactionresponsetime)Timeperrequest:0.072[ms](mean,acrossallconcurrentrequests)#平均服务器处理时间,是服务器吞吐量的倒数##第三个最关心的指标:平均服务器处理时间,也就是服务器的吞吐量的倒数(每个请求实际运行时间的平均值)Transferrate:4291.95[Kbytes/sec]received#每秒获取的数据长度##每秒网络上的平均流量,可以帮助排除是否有网络流量过大导致响应时间过长的大问题连接时间(ms)minmean[+/-sd]medianmaxConnect:0315.53143Processing:14378.03656Waiting:0277.82645Total:41675.56883一定时间内服务的请求百分比(ms)50%68#50%用户请求在68ms内返回66%7075%7280%7290%7595%7698%7799%78#50%用户请求在78ms内返回100%83(最长请求)ab-n500000-c20000http://api.xxx.com/test.php[root@xxx~]#ab-n500000-c20000http://api.xxx.com/test.php这是ApacheBench,版本2.3<$Revision:655654$>版权所有1996AdamTwiss,ZeusTechnologyLtd,http://www.zeustech.net/LicensedtoTheApacheSoftware基金会,http://www.apache.org/Benchmarkingapi.e-power.vip(耐心等待)已完成50000个请求已完成100000个请求已完成150000个请求已完成200000个请求已完成250000个请求已完成300000个请求已完成350000个请求已完成400000个请求已完成050个请求已完成50个请求已完成000个请求服务器软件:nginx服务器主机名:api.xxx.com服务器端口:80文件路径:/test.php文件长度:162字节并发水平:20000测试时间:52.321秒完成请求:500000失败请求:0写入错误:0非2xx响应:511989总转移:156156645字节HTML传输:82942218字节每秒请求数:9556.33[#/sec](平均值)每个请求时间:2092.855[毫秒](平均值)每个请求时间:0.105[毫秒](平均值,跨所有并发请求)传输速率:2914.62[Kbytes/sec]receivedConnectionTimes(ms)minmean[+/-sd]medianmaxConnect:0932267.28731604Processing:4021111355.510812094Waiting:0839283.28381641Total:8372043280.725P26某些请求服务的中心26时间(毫秒)50%206366%218575%222680%229990%238995%244998%256299%2596100%2658(longestrequest)ab(option)(parameter)option-A:指定连接服务器的基本认证凭证;-c:指定一次向服务器请求的次数;-C:添加cookie;-g:将测试结果输出为“gnuolot”文件;-h:显示帮助信息;-H:在请求中附加一个额外的头部;-i:使用“head”请求方式;-k:激活HTTP中的“keepAlive”特性;-n:指定测试会话使用的请求数;-p:指定包含数据的文件;-q:不显示进度百分比;-T:使用POST数据时,设置内容类型头;-v:设置详细模式级别;-w:以HTML格式打印结果;-x:设置表单输出时表单的属性;-X:使用指定的代理服务器发送请求;-y:以form形式输出时,设置form属性Option\-Aauth-username:password#支持基本认证证书,用户名和密码之间用“冒号”隔开,ab将以明文形式发送。不管服务器是否需要#,也就是说,你的服务器需要支持401认证。\-cconcurrency#同时发送到服务器的请求数。默认情况下,一次只执行一个http请求。\-Ccookie-name=value#添加cookie;行到请求。参数通常采用名称=值对的#形式。该字段是可重复的。\-d#不显示“在XX\[ms\]表中提供的百分比”。#(传统支持)。\-ecsv-file#编写一个逗号分隔值(CSV)文件,其中包含每个#百分比(从1%到100%)所花费的时间(以毫秒为单位)#服务该百分比的请求。这通常比'gnuplot'文件更有用;因为结果已经“装箱”了。\-ggnuplot-file#Outputthetestresultsasa"gnuolot"file#将所有测量值写为'gnuplot'或TSV(Tabseparate#values)文件。这个文件可以很容易地导入到包中,比如#Gnuplot、IDL、Mathematica、Igor甚至Excell。标签位于文件的第一行。\-h#显示使用说明\-Hcustom-header#向请求数据包附加额外的头字符串。这个参数应该是一个有效的标题行(header#line)形式,通常用冒号“:”来分隔有效对(validpair)比如'Accept-#Encoding:zip/zop;8bit';\-i#使用httpheader(HEAD)来代替GET方法。不要混用POST方法\-k#允许httpKeepAlive;也就是说在一个http#session中执行多个请求,默认是没有KeepAlive;)\-nrequests#执行一次测试session时发送的请求数,默认是执行单个请求#当然,这样的测试结果是没有意义的\-pPOST-file#测试程序也是ab,会向Apache服务器发送HTTPPOSTRequest。\-Pproxy-auth-username:password#当你需要通过代理测试一个HTTP服务器并且你的代理#需要用户名和密码认证时,那么你可以使用这个选项,同样#用户名和密码使用冒号":"来分隔,ab会明文发送#,当然前提是你的proxy处于407认证状态\-q#不显示进度百分比#当处理超过150个请求时,ab输出每10%或100个请求左右的stderr上的进度计数。-q标志将禁止显示这些消息。\-s#在编译时(ab-h会告诉你)使用受SSL保护的https#而不是http协议。这个功能是实验性的,#非常初级。您可能不想使用它。\-S#不显示中值和标准差值,当平均值和中值相差超过标准差的一倍或两倍时,也不显示警告/错误消息。并将故障排除到最小/平均/最大值。(传统支持)。\-ttimelimit#设置测试的时间长度,使用这个选项ab会自动设置#测试请求会话数为50000,然后使用你设置的时间作为#固定周期。默认情况下,没有时间限制,即直到完成您设置的请求数。\-Tcontent-type#内容类型头,POST数据时使用。\-vverbosity#设置冗长级别,level4打印出每个请求头的详细信息,#level3打印出响应码(例如404、200),2Level打印出警告信息和说明\-V#显示版本号并退出\-w#打印输出到HTML表格。默认表格是两列n行白底黑框\-x
-attributes#用于生成html表格每一列的属性名(<td>)
最新推荐
猜你喜欢
|