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 栏 表示的是从上一次显示 到你终止程序的时候发送的情况。
最后部分总结了 所有发送的情况的总和