如何在 Ubuntu 24.04、22.04 或 20.04 上安装 Siege

Siege 是一款功能强大的基准测试工具,用于测试负载下 Web 服务器的性能和稳定性。它允许您模拟多个用户同时访问您的网站,从而提供有关您的服务器如何处理高流量的宝贵见解。Siege 支持基本的 HTTP/HTTPS 协议,并可以执行 GET、POST 和其他请求方法。它广泛用于压力测试、性能调优以及确保 Web 应用程序能够处理峰值负载。

要在 Ubuntu 24.04、22.04 或 20.04 上安装 Siege,您有两个主要选项:使用命令行终端从 Ubuntu 默认存储库安装,或直接从源下载并安装 Siege 以获取最新版本和附加功能。本指南将引导您完成这两种安装方法。

在安装 Siege 之前更新 Ubuntu

确保你的 Ubuntu 系统使用最新的软件包对于维护高效、安全和可靠的计算环境至关重要。当我们执行命令时 sudo apt update,系统的软件包列表就会刷新。

以下是执行此操作的命令:

sudo apt update && sudo apt upgrade

选择 Siege 安装方法

选项 1:通过 Ubuntu 默认存储库安装 Siege

Siege 是 Ubuntu 默认存储库中的一个便捷的基准测试工具。这大大简化了安装过程,使我们能够使用 Ubuntu 的内置包管理工具 (APT) 进行安装。

命令 sudo apt install siege 会触发 APT 系统在存储库中搜索 Siege 包、处理依赖项并在系统上安装 Siege。开头的“sudo”是必需的,因为它允许以 root 权限执行命令,这是系统范围安装所必需的。

要安装 Siege,请输入以下命令:

sudo apt install siege 

选项 2:通过源代码在 Ubuntu 上安装 Siege

对于希望了解最新功能和改进的用户来说,从源代码编译 Siege 是最佳选择。此方法需要获取最新的源代码并手动编译,以确保您拥有最新版本的 Siege。

下载最新的 Siege 源代码

首先,您需要获取最新的源代码。Siege 团队提供了最新版本的一致链接,简化了此过程。但是,确保链接始终有效始终是一个好习惯。

要下载最新的源代码,请打开终端并执行以下命令:

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

提取并准备源

下载完成后,下一步是提取档案的内容。执行以下命令来实现此目的:

tar -xvf siege-latest.tar.gz

此命令将 Siege 源代码解压到一个目录中。使用以下命令导航到此目录:

cd siege-*/

值得注意的是,确切的目录名称可能会因 Siege 版本的不同而有所不同。在继续操作之前,请确保您位于正确的目录中。

在深入编译过程之前,建议 安装 zlib 包,它有助于数据的压缩和解压缩:

sudo apt install zlib1g-dev

编译并安装 Siege Binary

现在,您将在 Siege 源目录中启动编译和安装过程。下面的命令序列将配置构建设置,编译源代码,然后在您的 Ubuntu 系统上安装 Siege:

./configure --with-zlib
make
sudo make install

这些命令配置构建选项,编译源代码,并在您的 Debian 系统上安装 Siege。

验证 Siege 安装

安装后,必须验证 Siege 是否已正确安装。此外,检查已安装的版本可以了解其与特定功能或插件的兼容性,并告知您是否需要进行未来更新。

要确定系统上安装的 Siege 版本,请运行以下命令:

siege --version

在 Ubuntu 上配置 Siege

正确配置 Siege 对于其最佳运行和充分利用其功能至关重要。此过程涉及修改位于主目录中的 Siege 配置文件 .siegerc。

找到 Siege 配置文件

siegerc 文件是一项重要资产,是 Siege 运行的控制中心。它包含大量参数,用于指示该工具的行为。这些参数包括模拟用户的数量、请求之间的延迟以及日志记录级别。

让我们从探索现有的 siegerc 文件开始。您可以通过运行 cat 命令来完成此操作:

cat /etc/siege/siegerc

配置Siege配置文件

您需要使用文本编辑器打开文件,以更改 Siege 配置以符合您的特定用例。在本指南中,我们将使用 Nano,因为它易于使用且简单易用。

以下命令允许您在 nano 文本编辑器中打开 siegerc 文件:

sudo nano /etc/siege/siegerc

此文件是可配置选项的宝库,但我们将重点介绍一些更常用的参数:

  • verbose:确定是否显示详细输出(true)或不显示(false)。
  • csv:指示输出是否应为 CSV 格式(true)或不是(false)。
  • 并发:指定负载测试的模拟用户数。
  • 时间:确定负载测试的持续时间。
  • 延迟:设置每个用户请求之间的时间延迟。
  • internet:通过访问网站上的随机 URL 来模拟用户行为(true)或不访问(false)。
  • 基准:允许 Siege 作为基准测试工具运行 (true) 或不允许 (false)。

举例来说,如果您要模拟25个用户,每个用户每秒发送一次请求,测试持续1小时,则可以修改相关参数,如下所示:

verbose = false
csv = true
concurrent = 25
time = 1H
delay = 1S
internet = false
benchmark = false

完成所需的更改后,按 Ctrl+X 保存并退出,然后按 Y 确认保存更改,然后按 Enter。

在 Ubuntu 上使用 Siege 进行 HTTP 负载测试

现在我们已经安装并配置了 Siege,让我们来探索一些实际示例,让您具体了解此工具的工作原理。在这些演示中,我们将对您的 Web 服务器进行压力测试,模拟大量请求,这与 DDoS 攻击不同。

这对于了解您的网站如何处理大量流量非常有价值。但是,请获取必要的权限并负责任地使用这些工具。理想情况下,它们应该只在您的服务器上使用。

使用 Siege 对网站进行基准负载测试

首先,使用默认的模拟用户数量(也称为“工作者”)(即 25)应用 Siege 来测试网站。我们还将压力测试的持续时间设置为一分钟。这可以通过使用 -t 1m 标志来实现,如下面的命令所示:

siege https://www.example.com -t 1m

执行此命令后,Siege 将启动压力测试,模拟 25 个并发用户向你的网站发送请求,持续 1 分钟。测试结束后,Siege 将提供详细的结果报告。

请记住,为了获得更有意义和更准确的见解,运行测试通常最好持续 5 到 15 分钟。1 分钟的持续时间只是为了演示目的。

要增加工作器数量,可以使用 -c 标志,后跟所需数量。例如,要模拟 100 名工作器,请使用 -c 100 标志:

siege https://www.example.com -c 100 -t 2m

使用 Siege 对多个网站进行压力测试

如果您是系统管理员或管理多个域,您会很高兴知道 Siege 可以同时处理多个网站。这可以通过配置文件 /etc/siege/urls.txt 实现,Siege 可以使用该文件来确定要对哪些网站进行压力测试。

要配置此文件,请使用以下方式打开它 nano:

sudo nano /etc/siege/urls.txt

然后,插入您要进行压力测试的网站的 URL:

https://www.example.com
https://www.example2.com
http://192.168.50.1

要保存这些更改并退出,请按 Ctrl+O、Enter,然后按 Ctrl+X。

最后,要对指定的网站启动压力测试,请执行以下命令:

siege -f /etc/siege/urls.txt

Ubuntu 上的其他 Siege 命令

Siege 不只是用请求轰炸您的服务器;它是一种多功能工具,提供许多选项,允许您自定义测试方法。从控制并发用户数量到调整每个请求之间的延迟,Siege 的命令选项可让您模拟各种场景。

本节将帮助您熟悉其他 Siege 命令,帮助您进行更细致、更精细的测试。

使用 Siege 控制请求之间的延迟

使用 Siege,您可以在每个用户的请求之间引入延迟,以模拟更真实的用户行为。这可确保请求不会无休止地连续发送。

例如,在下面的命令中:

siege https://www.example.com -c 50 -d 5

Siege 被指示使用 50 个并发用户对指定网站进行压力测试,每个用户的请求之间会有 5 秒的延迟。

使用 Siege 自定义 HTTP 方法和标头

Siege 允许您自定义压力测试的 HTTP 方法和标头。例如,您可能希望发送带有自定义标头的 POST 请求。-H 标志允许您设置自定义标头,而 –method 选项允许您设置 HTTP 方法。以下是使用这些选项的方法:

siege --method="POST" -H "Content-Type: application/json" https://www.example.com

在上面的命令中,我们使用 POST 方法并将 Content-Type 标头设置为 application/json 以满足我们的请求。

使用 Siege 记录结果

您可能希望记录压力测试结果,以便进一步分析或记录。Siege 可以使用以下方式将测试结果写入日志文件: -l 选项:

siege -l https://www.example.com

此命令告诉 Siege 记录压力测试结果。默认情况下,Siege 将日志写入主目录中名为 siege.log 的文件中。

结束语

在 Ubuntu 系统上成功安装 Siege 后,您可以有效地对 Web 服务器进行基准测试和压力测试。无论您是选择 Ubuntu 默认存储库的便利性还是直接从源代码安装的灵活性,Siege 都提供了一套可靠的工具,可确保您的 Web 应用程序在负载下达到最佳性能。定期更新 Siege 以利用新功能和改进,并使用它来维护 Web 服务器的稳定性和性能。

Joshua James
跟我来
Joshua James 的最新帖子 (查看全部)

发表评论