使用Siege Benchmarking Tool加载测试Web服务器

Siege是一个功能强大的HTTP负载测试和基准测试实用程序,可在高负载下测量您的Web服务器性能。

了解您的Web服务器在压力下可以处理多少流量,这对于规划您的网站或应用程序的未来发展至关重要。 通过使用名为siege的工具,您可以在服务器上运行负载测试,并查看系统在不同情况下的性能。

您可以使用siege来评估传输的数据量,响应时间,事务速率,吞吐量,并发性以及服务器返回响应的次数。 该工具有三种模式,可以操作 - 回归互联网模拟蛮力

重要提示 :只应针对您拥有的服务器或者您拥有明确的测试权限运行Siege 在某些国家/地区,对未经授权的网站进行围攻可能被视为犯罪。

在Linux中安装Siege HTTP负载测试实用程序

Siege是多平台的,可以使用以下命令安装在Ubuntu / DebianCentOS / RHEL发行版下。

要在Debin / Ubuntu下安装Siege ,您可以运行:

$ sudo apt install siege

对于CentOS / RHEL ,您需要安装并启用存储库以安装围攻:

# yum install epel-release
# yum install siege

或者,您可以从源构建Siege 为此,您需要安装build-essential和开发包。

$ sudo apt install build-essential       #Ubuntu/Debian
# yum groupinstall 'Development Tools'   #CentOS/RHEL

然后,您可以使用wget命令下载Siege并从源代码安装,如图所示。

$ wget http://download.joedog.org/siege/siege-latest.tar.gz
$ tar -zxvf siege-latest.tar.gz
$ cd siege-*/
$ sudo ./configure --prefix=/usr/local --with-ssl=/usr/bin/openssl
$ sudo make && make install

在Linux中配置Siege HTTP负载测试实用程序

完成安装后,您可以调整攻城配置文件。 它位于/ etc / siege / siegerc 如果您决定从源代码构建软件包,则必须运行:

$ sudo siege.config

这将生成位于用户主页〜/ .siege / siege.conf中的siege.conf文件

该文件的内容应如下所示。 请注意,我已取消注释日志文件时间指令:

# cat siegerc |egrep -v "^$|#"
样本输出
logfile = $(HOME)/var/log/siege.log
verbose = false
color = on
quiet = false
show-logfile = true
logging = false
gmethod = HEAD
parser = true
nofollow = ad.doubleclick.net
nofollow = pagead2.googlesyndication.com
nofollow = ads.pubsqrd.com
nofollow = ib.adnxs.com
limit = 255
protocol = HTTP/1.1
chunked = true
cache = false
connection = close
concurrent = 25
time = 1M
delay = 0.0
internet = false
benchmark = false
accept-encoding = gzip, deflate
url-escaping = true
unique = true

使用当前配置, 围攻将在1分钟内模仿25个并发用户。

你现在准备好围困了。

使用Siege Benchmarking Utility测试网站负载

运行围攻很容易,你只需要指定你想要测试的网站,如下所示:

# siege example.com
使用Siege进行Web服务器负载测试

使用Siege进行Web服务器负载测试

如果可用性保持在100%且没有连接失败,那么您的系统运行良好且没有问题。 您还应该关注响应时间。

针对多个网站运行围攻

您可以通过设置siege从文件中读取多个URL来测试它们。 您可以像这样描述/usr/local/etc/urls.txt中的URL:

多个Web服务器负载测试

多个Web服务器负载测试

现在告诉围攻测试文件中的URL,使用-f选项如下:

# siege -f /usr/local/etc/urls.txt

如果要尝试配置文件中描述的设置,也可以使用命令行选项。

  • -C - 指定您自己的配置文件。
  • -q - 抑制围攻的输出。
  • -g - GET,下拉HTTP标头并显示事务。 对调试很有用。
  • -c - 并发用户数,默认为10。
  • -r - 运行测试的次数。
  • -t - 运行测试的时间。 您可以指定S,M或H ex:-time = 10S,持续10秒。
  • -d - 每个请求之前的随机延迟。
  • -b - 请求之间没有延迟。
  • -i - 用户模拟。 用于命中随机网址。
  • -f - 测试指定文件的URL。
  • -l - 日志文件。
  • -H - 添加标头以进行请求。
  • -A - 指定用户代理。
  • -T - 在请求中设置Content-Type。
  • --no-parser - NO PARSER,关闭HTML页面解析器。
  • --no-follow - 不要遵循HTTP重定向。
结论

Siege是一种在高负载下测量系统可靠性的强大工具。 当网站受到胁迫时,Web开发人员可以使用它来测试他们的代码。 您应该始终谨慎运行测试,因为在评估过程中测试的服务器可能无法访问。