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-agentchrome的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的更多相关文章

  1. Web性能测试工具:Siege安装&使用简介

    在Web性能测试工具中,siege是比较热门和常见的,它有安装简单,使用简单,测试报告详细的特点. 并且可以在文本中预定义一系列待测试url模拟,并可设定一定并发量下持续指定时间or测试进行测试. 比 ...

  2. siege之-服务端性能测试

    官方网站http://www.joedog.org/ 有3种操作模式: 1) Regression (when invoked by bombardment)Siege从配置文件中读取URLs,按递归 ...

  3. 性能测试工具--SIEGE安装及使用简介

    官方网站http://www.joedog.org/ 概述 Siege是一个多线程http负载测试和基准测试工具.它有3种操作模式: 1) Regression (when invoked by bo ...

  4. 【性能测试工具】- Siege

    优点:比http_load好用,因为相同的url.txt文件在httpload不好使,所以在易用性上httpload不如siege,仍需进一步调研. 缺点:安装过程中,不能自动创建siege.log文 ...

  5. 【性能测试工具】-SIEGE、HTTP_LOAD、WebBench、Apache-ab

    //当使用其它的开源测试工具的时候,也可以参考这一点:进入到bin目录 //如果工具本身不包含bin文件,那么在工具的1级目录执行即可 (1)       SIEGE $cd /home/userNa ...

  6. 性能测试工具--SIEGE安装及使用简介 siege压力测试

    官方网站http://www.joedog.org/ 概述 Siege是一个多线程http负载测试和基准测试工具.它有3种操作模式: 1) Regression (when invoked by bo ...

  7. 2、使用siege进行服务端性能测试

    先查看siege帮助 输入siege -h 翻译一下常用命令 -c 指定并发数 -r 指定重复次数 -d 指定请求的延迟时间,注意每个请求间随机延迟 -f 指定url列表,可以一次给多个地址加压 -t ...

  8. 3、加强siege性能测试

    需求1:使用siege对多个页面进行加压 1.对如下3个页面加压 http://jrjf.hscx365.com/ http://jrjf.hscx365.com/solution/armyone.h ...

  9. 烂泥:apache性能测试工具ab的应用

    本文由秀依林枫提供友情赞助,首发于烂泥行天下. 网站性能压力测试是服务器网站性能调优过程中必不可缺少的一环.只有让服务器处在高压情况下,才能真正体现出软件.硬件等各种设置不当所暴露出的问题. 性能测试 ...

随机推荐

  1. Android Retrofit使用教程(二)

    上一篇文章讲述了Retrofit的简单使用,这次我们学习一下Retrofit的各种HTTP请求. Retrofit基础 在Retrofit中使用注解的方式来区分请求类型.比如@GET("&q ...

  2. How To Commit Just One Data Block Changes In Oracle Forms

    You have an Oracle Form in which you have multiple data blocks and requirement is to commit just one ...

  3. UBUNTU : Destination Host Unreachable

    介绍我的系统的搭建的方式: WIN7 64 + VMWARE STATION,方式是进行桥接的方式.最近突然出现了问题,Ubuntu ping 外网或者 PING WIN 7 的时候,出现 Desti ...

  4. 七款做好DevOps的强大工具

    原文链接: 7 cool tools for doing devops right 传统把开发和运营割裂开的做法,实则不适合现代产品和服务开发的需求,如今把开发和运营作为整体来看待的DevOps工程思 ...

  5. C语言 包含结构的结构

    一个结构体的成员是另一个结构体 代码: # include <stdio.h> # include <stdlib.h> struct data { int year; int ...

  6. spring4.0.0的配置和使用

    1.创建一个javaproject或者webproject,我创建的时webproject,编译器用的时myeclipse2013 2.在lib文件夹以下倒入spring须要的一些核心包例如以下 还需 ...

  7. php程序执行过程--非宏观和微观而是写的程序一行一行的路径----利用xdebug了解一段程序的执行过程----覆盖率

    1.xdebug_start_code_coverage();//在需要开始跟踪程序执行路径时使用 2.var_dump(xdebug_get_code_coverage());//在结尾使用打印程序 ...

  8. Proving Equivalences (hdu 2767 强联通缩点)

    Proving Equivalences Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Oth ...

  9. Spark源码分析之四:Stage提交

    各位看官,上一篇<Spark源码分析之Stage划分>详细讲述了Spark中Stage的划分,下面,我们进入第三个阶段--Stage提交. Stage提交阶段的主要目的就一个,就是将每个S ...

  10. Linux kernel 2.6下的modules编译与KBuild

    转载:http://blog.sina.com.cn/s/blog_602f87700100dq1u.html Sam之前在Linux kernel 2.4下写过一些driver.但自从转到kerne ...