性能测试--siege
siege
这是Linux系统下的一个测试工具,完全使用C语言实现,可以对HTTP和FTP服务器进行负载和性能测试。通过使用Siege 提供的功能,可以很容易的制定测试计划:包括规定使用并发用户数、重复数量,从而可以模拟在服务器、网络或者其它对象上附加负载以测试他们提供服务的受压能力,方便的测试服务器的性能。最后,利用Siege提供的测试结果来分析性能指标或者分析他们提供的服务在不同负载条件下的性能情况,分析测试结果,找出影响系统性能的瓶颈。
一、安装下载
在linux服务器上操作
1、下载最新版本的siege
wget http://download.joedog.org/siege/siege-latest.tar.gz
2、解压并进入siege路径
tar -zxvf siege-latest.tar.gz
cd siege-*/
3、编译安装
./configure
make
sudo make install
4、验证安装是否成功
siege -h
二、输入输出参数说明
1、输入参数:

2、输出参数:
siege示例,使用siege对ur.tencent.com进行加压(模拟20个用户同时访问,一共跑3个循环)
siege -c 20 -r 3 http://ur.tencent.com
测试结果:

输出参数解释说明:
- Transactions: siege对服务器的访问次数。如果页面发生了redirect,那么siege会将跳转过的请求算成是另一个transaction
- Availability: socket连接的成功率。算法是,如果页面发生了timeout,4xx,5xx,那么该请求算是失败请求,成功率就等于
(所有请求-失败请求) / 总请求数 - Elapsed time: 所有请求耗费的时间
- Data transferred: 所有请求传输的数据量,包括请求的headers和content。所以这个数值可能比server端统计的数值要大一点
- Response time: 平均响应时间
- Transaction rate:
Transactions / Elapsed time - Throughput: 每秒平均传输的数据量
- Concurrency: 平均并发的请求数
- Successful transactions: 所有status code < 400的transactions数量
- Failed transactions: 所有status code >= 400的transactions数量
- Longest transaction: 最耗时的请求时间
- Shortest transaction: 最短单个请求时间
三、siege示例:
http://ur.tencent.com/categories/7
http://ur.tencent.com/categories/7/?page=2
http://ur.tencent.com/categories/7/?page=3
urls.txt
urls.txt文本中保存了多个页面url
1、使用siege对urls.txt进行加压,并发数是5,持续运行1分钟
siege -c 5 -t 1M -f urls.txt
2、对多个页面加压后,保存siege日志
siege -c 5 -t 1M -f urls.txt --log=result.csv #urls.txt、result.csv两个文件名可带路径
注:
- 可以使用命令
sz result.csv将结果文件拷贝到本地(没有sz命令Ubuntu使用:centOS用yum -y install lrzsz安装既可) - 也可以用Xshell 5中的sftp工具:get result.csv 下载文件到Xshell 本地Sessions文件夹中
3、压测时候启用gzip压缩
gzip压缩就是指服务器在返回请求时候先将请求压缩一下,以减少response的体积,客户端收到response之后会自行解压,这是提升传输速度的一般做法。在请求头中加入Accept-Encoding:gzip就可以告诉服务器返回压缩后的response
siege -c 5 -t 1M -f urls.txt -H "Accept-Encoding:gzip" --log=result_gip.csv
4、模拟移动站点(移动端:Android、iOS)访问进行压测
需要发送相应的user-agent,服务器就会根据这个值判断浏览器是移动版还是桌面版,在这里用iphone的user-agent模拟iPhone5对百度站点进行访问。(iphone的user-agent、chrome的user-agent、安卓ios主流浏览器User-Agent汇总)
siege -c1 -r1 -A"Apple-iPhone5C2/1001.525" http://www.baidu.com
siege -c1 -r1 -A"Apple-iPhone5C2/1001.525" http://www.baidu.com
[alert] Zip encoding disabled; siege requires zlib support to enable it
** SIEGE 4.0.4
** Preparing 1 concurrent users for battle.
The server is now under siege...
HTTP/1.1 200 0.09 secs: 2925 bytes ==> GET /
HTTP/1.1 200 0.07 secs: 2340 bytes ==> GET /static/index/u.png Transactions: 2 hits
Availability: 100.00 %
Elapsed time: 0.16 secs
Data transferred: 0.01 MB
Response time: 0.08 secs
Transaction rate: 12.50 trans/sec
Throughput: 0.03 MB/sec
Concurrency: 1.00
Successful transactions: 2
Failed transactions: 0
Longest transaction: 0.09
Shortest transaction: 0.07
移动版输出结果
桌面版:
siege -c1 -r1 http://www.baidu.com
** SIEGE 4.0.4
** Preparing 1 concurrent users for battle.
The server is now under siege...
HTTP/1.1 200 0.14 secs: 112430 bytes ==> GET /
HTTP/1.1 200 0.06 secs: 2947 bytes ==> GET /baidu.html?from=noscript
HTTP/1.1 200 0.05 secs: 91 bytes ==> GET /img/gs.gif
[error] HTTPS requires libssl: Unable to reach ss1.bdstatic.com with this protocol: Operation now in progress
HTTP/1.1 200 0.13 secs: 93750 bytes ==> GET /r/www/cache/static/jquery/jquery-1.10.2.min_65682a2.js
HTTP/1.1 200 0.06 secs: 705 bytes ==> GET /img/baidu_jgylogo3.gif
HTTP/1.1 200 0.06 secs: 7877 bytes ==> GET /img/bd_logo1.png Transactions: 6 hits
Availability: 85.71 %
Elapsed time: 0.54 secs
Data transferred: 0.21 MB
Response time: 0.08 secs
Transaction rate: 11.11 trans/sec
Throughput: 0.38 MB/sec
Concurrency: 0.93
Successful transactions: 6
Failed transactions: 1
Longest transaction: 0.14
Shortest transaction: 0.05
桌面版输出结果
对比移动版和桌面版的发现在同样的并发量和循环次数上,移动版的传输数据的量更小(因为移动端流量毕竟贵嘛)
性能测试--siege的更多相关文章
- Web性能测试工具:Siege安装&使用简介
在Web性能测试工具中,siege是比较热门和常见的,它有安装简单,使用简单,测试报告详细的特点. 并且可以在文本中预定义一系列待测试url模拟,并可设定一定并发量下持续指定时间or测试进行测试. 比 ...
- siege之-服务端性能测试
官方网站http://www.joedog.org/ 有3种操作模式: 1) Regression (when invoked by bombardment)Siege从配置文件中读取URLs,按递归 ...
- 性能测试工具--SIEGE安装及使用简介
官方网站http://www.joedog.org/ 概述 Siege是一个多线程http负载测试和基准测试工具.它有3种操作模式: 1) Regression (when invoked by bo ...
- 【性能测试工具】- Siege
优点:比http_load好用,因为相同的url.txt文件在httpload不好使,所以在易用性上httpload不如siege,仍需进一步调研. 缺点:安装过程中,不能自动创建siege.log文 ...
- 【性能测试工具】-SIEGE、HTTP_LOAD、WebBench、Apache-ab
//当使用其它的开源测试工具的时候,也可以参考这一点:进入到bin目录 //如果工具本身不包含bin文件,那么在工具的1级目录执行即可 (1) SIEGE $cd /home/userNa ...
- 性能测试工具--SIEGE安装及使用简介 siege压力测试
官方网站http://www.joedog.org/ 概述 Siege是一个多线程http负载测试和基准测试工具.它有3种操作模式: 1) Regression (when invoked by bo ...
- 2、使用siege进行服务端性能测试
先查看siege帮助 输入siege -h 翻译一下常用命令 -c 指定并发数 -r 指定重复次数 -d 指定请求的延迟时间,注意每个请求间随机延迟 -f 指定url列表,可以一次给多个地址加压 -t ...
- 3、加强siege性能测试
需求1:使用siege对多个页面进行加压 1.对如下3个页面加压 http://jrjf.hscx365.com/ http://jrjf.hscx365.com/solution/armyone.h ...
- 烂泥:apache性能测试工具ab的应用
本文由秀依林枫提供友情赞助,首发于烂泥行天下. 网站性能压力测试是服务器网站性能调优过程中必不可缺少的一环.只有让服务器处在高压情况下,才能真正体现出软件.硬件等各种设置不当所暴露出的问题. 性能测试 ...
随机推荐
- 某考试 T2 Tree
2 树 2.1 题目描述 给一棵n 个节点的树,节点分别编号为0 到n - 1.你可以通过如下的操作来修改这棵树:首先先删去树上的一条边,此时树会分裂为两个连通块,然后在两个连通块之间加上一条新的边使 ...
- 解决百度ueditor配置上传目录为外部目录时,项目启动访问不到图片的问题。
如图所示,公司项目用到了百度的ueditor,配置的上传目录并不在项目根目录下,而是在外部目录中.于是在上传图片时,出现了无法获取图片的问题. 解决方法:添加该目录至tomcat项目部署目录中,如下图 ...
- String、Stringbuffer和Stringbuilder之间的区别
关于这三个类在字符串处理中的位置不言而喻,那么他们到底有什么优缺点,到底什么时候该用谁呢?下面我们从以下几点说明一下 1.在执行速度方面:Stringbuilder>Stringbuffer&g ...
- 常用jar包之commons-digester使用
常用jar包之commons-digester使用 学习了:https://blog.csdn.net/terryzero/article/details/4332257 注意了, digester. ...
- Android开发系列(二十三):实现带图片提示的Toast提示信息框
Android中的Toast是非经常见的一个消息提示框.可是默认的消息提示框就是一行纯文本.所以我们能够为它设置一些其它的诸如是带上图片的消息提示. 实现这个非常easy: 就是定义一个Layout视 ...
- 常用快递API及快递在线下单API分享
1.常用快递API 支持顺丰.EMS.申通.圆通.韵达.汇通.中通.天天.德邦.全峰等主流快递公司. 文档地址:https://www.juhe.cn/docs/api/id/43 1.1常用快递查询 ...
- 谈 API 的撰写 - 总览
背景 之前团队主要的工作就是做一套 REST API.我接手这个工作时发现那些API写的比较业余,没有考虑几个基础的HTTP/1.1 RFC(2616,7232,5988等等)的实现,于是我花了些时间 ...
- HTML5 Support In Visual Studio 2010
最近HTML5浪潮已经开始了,VS2010已经有一个扩展支持在HTML5智能提示.你可以从这里下载这个扩展: http://visualstudiogallery.msdn.microsoft.com ...
- 浅谈 Fork/Join
fork/join的java7新添加的功能,能够把它理解成一个并发框架. 我们通过fork/join能将一个可分解的大任务.分解成多个子任务同步运行.运行完成后,在将各子任务的结果进行合并,得到终于的 ...
- 基于UML的需求分析和系统设计个人体会
阅读了http://www.uml.org.cn/oobject/201405123.asp文章之后,对使用UML进行系统的需求分析和设计有了一个基础的理解.在此做一下整理. 1.项目开始阶段 项 ...