Curl-Loader性能测试详解

一.   功能说明:

      curl-loader 是一个用C语言 编写的Web 应用 测试和模拟负载 工具 ,可模拟成千上万的客户端 请求,并且每个请求来自不同的IP地址,支持用户 认证、登录等Web交换过程(注:Linux 安装curl-loader 需要先安装gcc和openssl)

二.    配置文件:

Curl-loader运行时需要指明配置文件。下面主要来说明一下配置文件的各个参数的说明。Curl-loader文件包中有一个conf.examples文件夹,该文件夹中有许多默认配置文件,你可以复制其中一个,更改一些条目来使用。

每个条目的具体说明如下

########### GENERAL SECTION ################################

2 BATCH_NAME= 10K          ########   名称

3 CLIENTS_NUM_MAX=1000   ####### 最大的并发请求数,也就是客户端的数量

4 CLIENTS_NUM_START=100    ####### 一开始并发数,也就是一开始客户端数量

5 CLIENTS_RAMPUP_INC=10     ######每秒增加的客户端数量

6 INTERFACE   =eth0           ######选用发送的网卡

7 NETMASK=24              

8 IP_ADDR_MIN= 10.0.78.212    #######客户端IP地址的范围的最小值

9 IP_ADDR_MAX= 10.0.78.212    ####### 客户端IP地址范围的最大值

10 CYCLES_NUM= -1

11 URLS_NUM= 1

12

13###########URLSECTION ####################################

15 URL=http://192.168.254.103/htdig/index.php             ######## 要发送的URL,也就是服务器地址  

16 #URL=http://localhost/ACE-INSTALL.html

17 URL_SHORT_NAME="10.0.78.22:8081"

18 REQUEST_TYPE=GET                 #######发送请求类型          

19 TIMER_URL_COMPLETION = 5000      # In msec. When positive, Now it is enforced by cancelling url fetch on timeout

20 TIMER_AFTER_URL_SLEEP =20

三 调用参数说明

   ./curl-loader -f < configuration file name > with [other options below]:

其中 configuration file name 为调用的配置文件

其他的主要操作数位 –d,

-d 操作用于将发送接收的详细信息写入文件,这些信息文件分别为 < configuration file name>.ctx , < configuration file name>.log < configuration file name>.ops, < configuration file name>.txt 这些文件保存在调用curl-loader的文件夹下,和调用的配置文件夹下

四 运行结果说明

运行时的显示形式如下:

============ loading batch is: my         ======================================

--------------------------------------------------------------------------------

Interval stats (latest:3 sec, clients:1, CAPS-curr:21):

H/F   Req:65,1xx:0,2xx:65,3xx:0,4xx:0,5xx:0,Err:0,T-Err:0,D:3ms,D-2xx:3ms,Ti:127811B/s,To:2730B/s

H/F/S Req:0,1xx:0,2xx:0,3xx:0,4xx:0,5xx:0,Err:0,T-Err:0,D:0ms,D-2xx:0ms,Ti:0B/s,To:0B/s

--------------------------------------------------------------------------------

Summary stats (runs:9 secs, CAPS-average:22):

H/F   Req:200,1xx:0,2xx:200,3xx:0,4xx:0,5xx:0,Err:0,T-Err:0,D:3ms,D-2xx:3ms,Ti:131091B/s,To:2800B/s

H/F/S Req:0,1xx:0,2xx:0,3xx:0,4xx:0,5xx:0,Err:0,T-Err:0,D:0ms,D-2xx:0ms,Ti:0B/s,To:0B/s

================================================================================

Manual: clients:max[1],curr[1]. Inc num: [+|*].

================================================================================

每隔3秒更新一下结果 Req:为请求数,1xx 这些为服务器返回的状态码。

按ctrl+C终止程序后,他的显示如下

======= SIGINT Received ============.

H/F   Req:70,1xx:0,2xx:70,3xx:0,4xx:0,5xx:0,Err:0,T-Err:0,D:3ms,D-2xx:3ms,Ti:137649B/s,To:2940B/s

H/F/S Req:0,1xx:0,2xx:0,3xx:0,4xx:0,5xx:0,Err:0,T-Err:0,D:0ms,D-2xx:0ms,Ti:0B/s,To:0B/s

=======================================================================================

End of the test for batch: my      

=======================================================================================

Test total duration was 12 seconds and CAPS average 16:

H/F   Req:270,1xx:0,2xx:270,3xx:0,4xx:0,5xx:0,Err:0,T-Err:0,D:3ms,D-2xx:3ms,Ti:132730B/s,To:2835B/s

H/F/S Req:0,1xx:0,2xx:0,3xx:0,4xx:0,5xx:0,Err:0,T-Err:0,D:0ms,D-2xx:0ms,Ti:0B/s,To:0B/s

Exited. For details look in the files:

- my.log for errors and traces;

- my.txt for loading statistics;

- my.ctx for virtual client based statistics.

- my.ops for operational statistics.

Add -v and -u options to the command line for verbose output to my.log file.

其中 SIGINT Received 栏 表示的是从上一次显示 到你终止程序的时候发送的情况。

最后部分总结了 所有发送的情况的总和