Siege HTTP 压力测试

1、概述

压力测试是服务开发中十分重要的一环,需要测试服务在高并发的环境下功能的稳定性以及性能的瓶颈,根据测试结果输出详细的测试数据,有针对性地对服务进行优化。

2、测试机器

系统

CentOS release 6.5 (Final)

CPU

model name     : Intel(R) Pentium(R) CPU G2030 @ 3.00GHz

processor       : 1

cpu cores       : 2

内存

MemTotal:      3624428 kB

3、测试工具

3.1 Siege

它是一款开源的压力测试工具,设计用于评估WEB应用在压力下的承受能力。可以根据配置对一个WEB站点进行多用户的并发访问,记录每个用户所有请求过程的相应时间,并在一定数量的并发访问下重复进行。

3.2 Siege 使用手册

3.2.1 Siege 安装

通过 yum install siege 命令可以安装,但是一般会根据系统源进行下载,下载的版本比较低,建议根据下列操作步骤安装最新版本。

wget http://download.joedog.org/siege/siege-4.0.4.tar.gz

tar -zxvf siege-4.0.4.tar.gz

cd siege-4.0.4/

./configure

make

make install

3.2.2 命令参数


siege  -c 并发用户数 -r 循环次数 --header "http协议头设置"  '请求链接'


【注意】根据机器的情况,siege一般并发的用户数,默认是 255,最高可以设置 1000 个或者更多(需要修改配置limit限制,vim /root/.siege/siege.conf,siege 工具每个用户会启用一个线程比较耗性能,所以根据实际情况设置用户数量),因为 HTTP 是短连接,机器端口号是 0 - 65535,并发数太高,siege很容易会把本地的端口耗尽。

3.2.2 测试结果

测试50,000 个数据包,500 个用户每个用户发送 100 个测试包。

header头填充 Cookie 的相关信息,token 和 userid。

操作方法:POST

协议:url: http://192.168.1.1:1111/xxx/im/relation/user/friend/check

协议包体:./friend_check.json

siege -c 500 -r 100 --header

"Cookie:token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyaWQjIsImV4cCI6MTU1MjE4MTAzMH0.Cz8MN2kREkueZC4tAwGw_r0qv7b0oRgli8mYOozXHG8;userid=2" 'http://192.168.1.1:1111/xxx/im/relation/user/friend/check POST < ./friend_check.json'

压测结果:

Transactions:                 500000 hits                                                                                        

Availability:                 100.00 %                                                                                           

Elapsed time:                 115.34 secs                                                                                         

Data transferred:              19.55 MB                                                                                          

Response time:                  0.20 secs                                                                                         

Transaction rate:            4335.01 trans/sec                                                                                   

Throughput:                     0.17 MB/sec                                                                                       

Concurrency:                  865.90                                                                                             

Successful transactions:      500000                                                                                              

Failed transactions:               0                                                                                             

Longest transaction:            3.03                                                                                              

Shortest transaction:           0.00 

Transactions

500000 hits

已完成的事务总数

Availability

100.00 %

完成的成功率

Elapsed time

115.34 secs

总共使用的时间

Data transferred

19.55 MB

响应中数据的总大小

Response time

0.20 secs

显示网络连接的速度

Transaction rate

4335.01 trans/sec

平均每秒完成的事务数

Throughput

0.17 MB/sec

平均每秒传送的数据量

Concurrency

865.90

实际最高并发链接数

Successful transactions

500000

成功处理的次数

Failed transactions

0

失败处理的次数

Longest transaction

3.03

最长事务处理的时间

Shortest transaction

0.00

最短事务处理时间




很好用的网络压力测试工具 Linux版 siege的安装 unzip filename.zip cd siege-*.*.* ./configure --prefix=/usr/local/siege --mandir=/usr/local/man --with-ssl=/usr/local/ssl mkdir -p /usr/local/siege/etc mkdir -p /usr/local/siege/var make make install 查看配置文件 /usr/local/siege/bin/siege -C 二、siege的使用 举例说明: 50个用户(每次并发量)重复100次 共产生 50*100 个请求 /usr/local/siege/bin/siege -c 50 -r 100 www.baidu.com 50个用户 重复100次 发送GET参数 /usr/local/siege/bin/siege -c 50 -r 100 http://www.baidu.com/s?wd=siege&rsv_spt=1&issp=1&rsv_bp=0&ie=utf-8&tn=baiduhome_pg&rsv_sug3=4&rsv_sug=2&rsv_sug1=4&rsv_sug4=60 50个用户 重复100次 发送POST参数 (注意引号) /usr/local/siege/bin/siege -c 50 -r 100 "https://www.abc.com/a.php POST name=zhangsan" 50个用户 重复100次 发送POST参数(从文件中读取) /usr/local/siege/bin/siege -c 50 -r 100 "https://www.abc.com/a.php POST < /root/ab_test/post.xml" 另外还有挺多参数 详情请man 或 siege -h siege报表解析,请man查看,暂略(有点累了,不想写了。。。。。)。 Transactions: 10 hits :服务器接收的请求数 Availability: 100.00 % :有效情况的比例 Elapsed time: 1.06 secs : 测试所用的时间 Data transferred: 0.04 MB :每个模拟用户的数据传输量 Response time: 0.03 secs :响应每个模拟用户请求的平均时间 Transaction rate: 9.43 trans/sec :服务器每秒处理事务的平均数 Throughput: 0.04 MB/sec :服务器每秒跟所有模拟用户的数据传输量 Concurrency: 0.25 :每秒的模拟连接 Successful transactions: 10 :处理成功的事务数(code<400) Failed transactions: 0 : 处理失败的事务数(code>400) Longest transaction: 0.04 :最长的事务处理时间 Shortest transaction: 0.02 :最短的事务处理时间
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值