安装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格式,我们将模拟一个负载测试,5个并发用户在10秒内访问网站www.example. com。需要说明一下,使用Siege时的并发被称为事务。因此我们要模拟的测试是使用Siege命令让Web服务器在10秒的时间内一次满足5个同时发生的事务:
- 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