安装Siege(centos)
1.5.1 安装Siege
可以通过从官方网站www.joedog.org/index/siege-home或http://freshmeat.net/ projects/siege下载源代码或者使用存储库(如port或aptitude)以及以下所示的命令之一安装Siege:
- sudo port install siege
- sudo aptitude install siege
使用其中一个命令,Siege将自动安装所有必需的程序包。在编写本书时,Siege的最新稳定版本为2.69。
很遗憾,如果没有Cygwin,Windows用户将不能使用Siege。如果你使用的是Windows,请先下载Cygwin并安装该软件,然后再尝试安装和运行Siege。安装完Cygwin之后,使用本部分中概述的步骤安装Siege。
如果你决定使用源代码安装,可能会在下载程序包时遇到问题,此时,请打开一个终端窗口并键入以下内容。
- wget ftp://ftp.joedog.org/pub/siege/siege-latest.tar.gz
该命令会将此程序包下载到你的系统上。下载完此程序包之后,执行以下命令:
tar xvfz siege-latest.tar.gz
cd siege-2.69/
./configure
make
sudo make install
这些命令将配置源代码、创建安装程序包并最终在系统上安装此程序包。安装完成后,将你的目录位置更改为/usr/local/bin/。你应该会在此目录中看到Siege脚本。
下面,我们继续进行并在域www.example.com上运行一个简单测试,以便查看示例结果。(注:
-bash: make: command not found的解决办法
1.5.2 运行Siege
第一个示例是对www.example.com的一个简单负载测试。与ab一样,Siege遵循特定的语法格式。
- siege [options] [URL]
- siege -c 5 -t10S http://www.example.com/
该命令使用两个选项标记:并发标记c和时间标记t。使用并发标记,可以通过X(在本例中为5)个用户同时访问网站来测试请求。数字可以是任意数字,只要运行测试的系统可以支持这样一个任务即可。t标记以秒(S)、分钟(M)或小时(H)为单位指定时间,并且数字和字母之间没有空格。
运行此命令之后,你应该会看到类似于图1-8的输出。
图1-8 www.example.com的Siege响应(10秒内5个并发请求) |
1.5.3 分析结果
与ab结果一样,Siege工具的结果也分为几个部分。具体来说,结果集有两个部分需要分析:
单个请求详细信息;
测试指标。
1. 单个请求详细信息
单个请求详细信息部分显示了该工具创建和运行的所有请求。每一行都代表一个唯一的请求并且包含三列,如图1-9所示。
图1-9 Siege请求数据 |
该输出包含运行的初始Siege命令的请求示例。各列所代表的内容如下:
HTTP响应状态代码;
完成请求所需的总时间;
作为响应所收到的数据总量(不包括标头数据)。
2. 测试指标
测试指标部分包含有关整个负载测试的信息。表1-4列出并描述了所有字段,你可以仔细查看一下。我们只对Data transferred、Transaction rate、Longest transaction以及Shortest transaction感兴趣。我们将重点介绍结果中的这些特定属性,因为它们显示出了优化应用程序的效果。
表1-4 Siege测试指标部分描述
字段名称 |
描述 |
示 例 值 |
Transactions |
已完成的事务总数 |
102 hits |
Availability |
能够请求Web文档的时间 |
100.00% |
Elapsed Time |
完成测试所需的总时间 |
9.71 secs |
Data transferred |
响应中数据的总大小 (不包括标头数据) |
0.04M |
Response time |
整个测试过程中的 平均响应时间 |
0.02 secs |
Transaction rate |
每秒要满足的事务总数 |
10.50 trans/sec |
Throughput |
处理数据和响应所需的总时间 |
0.00 MB/sec |
Concurrency |
Concurrency是同时连接 的平均数,该 |
5 |
Successful transactions |
整个测试过程中所执行 的成功的事务总数 |
102 |
Failed transactions |
整个测试过程中遇到的失 败的事务总数 |
0 |
Longest transaction |
满足一个请求所需的最长时间 |
0.03 |
Shortest transaction |
满足一个请求所需的最短时间 |
0.02 |
Data transferred 部分包含每个请求收到的响应的总大小(以MB为单位)。Transaction rate帮助我们了解当Web服务器在我们命令指定的负载下运行时可以满足的并发事务数(同时发生的请求)。在本例中,Web服务器在10秒之内5个并发请求的负载下时,Web服务器可以每秒满足10.50个事务。
Shortest transaction和Longest transaction字段告诉我们满足一个请求所需的最短时间(以秒为单位)以及满足一个请求所需的最长时间(以秒为单位)。1.5.4 Siege选项标记
Siege也包含很多可选标记,如果感兴趣,可以使用以下命令查看这些标记:
- siege -h