siege压测使用和说明


siege是一个压力测试和评测工具,可以根据配置对一个WEB站点进行多用户的并发访问,记录每个用户所有请求过程的相应时间,并在预定义并发量下重复进行。siege可以从预定义列表中获取随机的URL,所以siege可用于仿真用户请求负载。
一、siege工具安装

siege官网地址http://www.joedog.org/

最新版本3.0.8,下载地址http://download.joedog.org/siege/

1、安装

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

tar xzvf siege-3.0.8.tar.gz

cd siege-3.0.8

./configure

make && make install


二、整理测试环境和测试URL

1、修改本机Hosts,确认压测的URL可用且返回正确数据

2、发压测邮件说明给相关负责人,防止出现邮件监控报警而OPS不知道业务

3、整理压测的URL,为了确认监控日志为自己压测,可在URL后带特殊标识(比如&test=1)

siege参数详解:

-C,-config在屏幕上打印显示出当前的配置,配置是包括在他的配置文件$HOME/.siegerc,可以编辑里面的参数,这样每次siege都会按照它运行.

-v 运行时能看到详细的运行信息

-c n,-concurrent=n模拟有n个用户在同时访问,n不要设得太大,因为越大,siege消耗本地机器的资源越多

-i,-internet 随机访问urls.txt中的url列表项,以此模拟真实的访问情况(随机性),urls.txt存在是有效

-d n,-delay=n hit每个url之间的延迟,0-n之间

-r n,-reps=n 重复运行测试n,不能与 -t同时存在

-t n,-time=n 持续运行siege ‘n’(10S),分钟(10M),小时(10H)

-l 运行结束,将统计数据保存到日志文件中siege.log,一般位于/usr/local/var/siege.log,也可在.siegerc中自定义

-R SIEGERC,-rc=SIEGERC 指定用特定的siege配置文件来运行,默认的为$HOME/.siegerc

-f FILE, -file=FILE 指定用特定的urls文件运行siege ,默认为urls.txt,位于siege安装目录下的etc/urls.txt

-u URL,-url=URL 测试指定的一个URL,对它进行"siege",此选项会忽略有关urls文件的设定

urls.txt文件:是很多行待测试URL的列表以换行符断开,格式为:

[protocol://]host.domain.com[:port][path/to/file]

用法举例:

siege -c 300 -r 100 -furl.txt

说明:-c是并发量,-r是重复次数。url.txt就是一个文本文件,每行都是一个url,它会从里面随机访问的。

压测URL示例:

eg1:  siege -c 300-t 5M -u URL -H "Host: cx.soft.360.cn"  

eg2:  siege -c 300-t 5M 'http://10.143.25.32/soft/getinfo?info=[[1,"",1],[55,"",1],[3,"",1],[4,"",1],[56,"",1],[6,"",1],[7,"",1],[8,"",1],[9,"",1],[10,"",1],[11,"",1],[12,"",1],[13,"",1],[14,"",1],[15,"",1],[16,"",1],[17,"",1],[51,"",1],[52,"",1],[57,"",1],[21,"",1],[22,"",1],[23,"",1],[24,"",1],[25,"",1],[53,"",1],[54,"",1],[28,"",1],[29,"",1],[30,"",1],[31,"",1],[32,"",1],[33,"",1],[34,"",1],[35,"",1],[37,"",1],[38,"",1],[39,"",1],[40,"",1],[41,"",1],[42,"",1],[43,"",1],[44,"",1],[45,"",1],[46,"",1],[47,"",1],[48,"",1],[49,"",1],[50,"",1]]&test=1'-H "Host: cx.soft.360.cn"

4、在被压测服务器上,进行日志监控 tail -f access_log grep"&test=1"

三、开始压测以及压测结果

压测结果参数说明:

Transactions://完成多少次处理

Availability: //成功率%

Elapsed time://总共使用时间secs

Data transferred://总数据传输M(不包含头数据)

Response time://平均响应时间secs

Transaction rate://平均每秒完成多少次处理trans/sec

Throughput://平均每秒传送数据MB/sec

Concurrency: //实际最高并发连接数

Successful transactions://成功处理次数

Failed transactions: //失败处理次数

Longest transaction://满足一个请求所需最长时间

Shortest transaction://满足一个请求所需最短时间

压测机器:c0025v.add.bjcc.qihoo.net c0026v.add.bjcc.qihoo.net

被压机器:c0027v.add.bjcc.qihoo.net

1siege -c 300 -t 5M 2台同时请求

  
2siege -c 100 -t 5M 2台同时请求

.   
3siege -c 50 -t 5M 2台同时请求 


4
siege -c 70 -t 5M 1台请求 


测试流程:

做测试时需要知道的几个步骤: 

1. 了解测试的需求。 了解此次测试需要使用什么样的场景,期望系统到达最大用户数是多少等等。(具体内容具体分析) 

2了解应用服务器和数据库服务器相关信息。是同一台机器还是分离?服务器的用户名,登陆密码等信息

3.测试环境准备。 

4.所要测试网站如果有验证码,确定开发是否已经做了处理。是否已经屏蔽或可以任意万能码

一、测试准备

1、选择测试服务器,做好下线(从LVS摘除)工作

2、部署测试程序,修改相关配置(重点为数据库等)

3、整理业务URL规则,以及预估业务权重比例,给出测试案例

4、收集检测测试结果工具或方法

5、列出业务可能存在的问题或业务瓶颈点(预估)

二、开始测试

1、检测测试环境  检测一个简单测试案例,是否返回预期结果

2、查看测试日志  编写日志正则脚本,确保测试业务真实有效

3、进行单元测试,根据URL,分别对每个URL进行5-10次的测试请求

4、对比测试结果,确认业务可用,返回数据格式与预期一致等(联系客户端陈曦,进行接口check)

5、整理测试结果,并编写测试结果报告(附带测试条件)

三、结果整理

1、统计测试过程中系统CPU、内存、IO、网卡带宽、连接数、平均等待时长,最大QPS,业务处理时长,是否数据库

2、分析并整理测试结果,给出测试瓶颈点

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值