云网牛站
所在位置:首页 > Linux云服务器 > Linux系统下安装siege网页服务器性能测试工具

Linux系统下安装siege网页服务器性能测试工具

2018-01-27 21:02:40作者:linux大神稿源:linuxdashen

我们可以用很多工具来测试web服务器的性能,有些是免费开源的,有些是需要商业许可的。siege是一款免费开源的工具,用于web服务器的压力测试。

给siege指定一个URL,siege就可以模拟大量用户来测试web服务器性能。siege提供的测试结果包括耗费时间、总数据传输量,服务器响应时间、吞吐量、并发连接数量等。

 

源码编译安装siege

很多Linux发行版的软件库中都收录了siege,但软件库中的版本一般都比较旧,我们可以自己下载最新版本来安装。在写这篇文章时,最新版本为4.0.4。首先下载安装包,在终端中输入下面的命令:

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

或者

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

解压安装包:

tar -xvf siege-latest.tar.gz

tar -xvf siege-4.0.4.tar.gz

切换到解压目录

cd siege-4.0.4/

编译前需要做一点配置。./configure命令会为siege生成配置信息,并检查编译所需要的库文件。

./configure

configure完成后,输入下面两条命令编译并安装siege:

make

sudo make install

make会生成一个二进制文件,make install将生成的二进制文件安装到指定的目录下。默认的安装目录是/usr/local/bin/

查看siege的版本:

siege -V 或 siege --version

SIEGE 4.0.4

Copyright (C) 2018 by Jeffrey Fulmer, et al.

This is free software; see the source for copying conditions.

There is NO warranty; not even for MERCHANTABILITY or FITNESS

FOR A PARTICULAR PURPOSE.

 

siege默认的配置参数

在使用siege进行性能测试来,让我们来看看siege默认的配置参数。输入下面的命令:

siege -C 或 siege --config

默认的配置参数如下:

Linux系统下安装siege网页服务器性能测试工具

我们关心的参数有5个:

1.concurrent users: 指定用户数量,默认为15

2.failures until abort: failure超过一定的数量就终止测试,默认为1024

3.time to run: 测试时间,默认为n/a,没有指定

4.repetitions: 每个用户的请求数量,默认为n/a, 没有指定

5.resource file: 资源文件,也就是配置以上参数的文件,文件路径为/usr/local/etc/siegerc

由于默认的配置文件没有指定time to run和repetitions,所以默认情况下siege会一直测试下去,直到failure的数量超过1024。我们需要根据自己的需要修改配置文件,指定time to run 和repetitions。或者, 我们可以在siege运行的时候通过命令选项来指定,比如下面的命令:

siege -c 15 -r 10 -q http://www.example.com

-c 15 表示15个并发连接用户;-r 10 表示每个用户的请求数量为10;-q 表示 quiet,只输出结果,不输出过程。如果不指定这些选项,那么siege将从配置文件中读取默认的参数。

有些参数是不能通过命令选项来指定的,比如socket timeout,默认为30秒,我们只能在配置文件中修改它。

 

siege的两种模式:default 和 benchmark

在default模式下,模拟用户在发出一个请求后,默认会延迟1秒再发出下一个请求。延迟时间可以在配置文件中修改。default模式适用于负载测试(load testing)。

在benchmark模式下,模拟用户的请求没有延迟。在服务器和网络带宽允许的条件下,模拟用户会以最快的速度发出下一个请求。我们可以在命令中加入-b 指定siege以benchmark模式运行。

 

siege性能测试

好了,现在来进行正式的性能测试。我们需要将web服务器置于高度负载量下,为了达到这个目的,siege要以benchmark模式运行,并指定较高的并发用户数量(concurrent users)以及合理的单个用户请求数量(repetitions)。比如下面的命令

siege -b -c 400 -r 50 -q http://www.example.com

为了得到错误率以及吞吐量的数据,timeout参数必须要指定,默认的timeout为30秒。错误率是失败请求与总请求的比率。如果一个请求超过了30秒还没有得到回复,那么这个请求就是失败请求。吞吐量是指web服务器每秒可以发送的数据容量。

同时我们需要确保siege不会因为大量错误而取消测试。我们可以在配置文件中更改failures until abort的值以达到这个目的。

为了得到响应时间的数据,我们运行同样的命令,但是需要把timout的值给删掉。这种测试不会有任何错误,但响应时间会增加。

为了减少测试数据误差,我们要用同样的命令选项对web服务器进行多次性能测试,最后得出平均的数据。

 

测试结果

Linux系统下安装siege网页服务器性能测试工具

在测试结果中,我们可以看到4个有用的数据。

1.availability: 可用率,用100%减去可用率就可以得到错误率

2.response time: 响应时间

3.transaction rate: web服务器每秒处理的请求数量

4.throughput: web服务器每秒发送的数据容量

 

相关主题

7个使用bcc/BPF的性能分析神器

精选文章
热门文章