Apache Bench - (ab)概述

事实证明,性能测试对于企业的成功至关重要。 表现不佳的网站不仅会面临财务损失,有时还会导致法律后果。

在重要的在线交互(例如购买、在线考试、账单支付等)中,没有人愿意忍受性能缓慢、不可靠的网站。随着互联网的普及,替代方案的范围非常广泛。 失去客户比赢得客户更容易,而性能是关键的游戏规则改变者。

需要负载测试工具

如果我们能够理解负载测试工具的需求是什么,就会给我们使用它的理由和动力。 一些著名的商业网站在访问量很大时出现了严重的停机情况。 电子商务网站在广告活动上投入大量资金,但在负载测试方面却没有投入。 因此,当营销带来流量时,他们无法确保最佳的系统性能。

另一个常见的忽略负载测试的例子是 WordPress 网站中的"建立连接错误"。 因此,在将网站或应用程序部署到生产环境之前对其进行负载测试是一个好主意。 在运行更详细的测试之前,最好能够快速为项目建立最佳情况。

什么是 Apache Bench?

Apache Bench (ab) 是 Apache 组织的一款工具,用于对超文本传输协议 (HTTP) Web 服务器进行基准测试。 虽然它旨在测量 Apache Web 服务器的性能,但它也可以用于测试任何其他同样出色的 Web 服务器。 使用此工具,您可以快速了解您的网络服务器每秒能够处理多少个请求。

Apache Bench 的特点

让我们看看 Apache Bench 的重要特性和局限性。 下面列出了功能和限制 −

  • 作为开源软件,它可以免费使用。

  • 它是一个简单的命令行计算机程序。

  • 它是一个独立于平台的工具。 这意味着它可以在 Linux/Unix 或 Windows 服务器上同样调用。

  • 它只能对 Web 服务器 - HTTP 或 HTTPS 进行负载和性能测试。

  • 它不可扩展。

Apache Bench 仅使用一个操作系统线程,无论并发级别如何(由 -c 标志指定)。 因此,在对大容量服务器进行基准测试时,Apache Bench 的单个实例本身就可能成为瓶颈。 为了使目标 URL 完全饱和,如果您的服务器具有多个处理器核心,最好并行使用 Apache Bench 的其他实例。

注意事项

您需要注意,Apache Bench 中没有指令可以在运行测试时增加特定时间间隔的并发性。 因此,使用 ab 运行负载测试相当于拒绝服务 (DOS) 攻击。 如果您要进行长时间的重负载测试,建议您事先通知您的 VPS 服务提供商并获得许可。 他们将为您分配适当的时间间隔或转移您的节点来执行负载测试任务。

其次,如果您长时间连续测试第三方网站,只是为了从您的 VPS(成为测试节点)学习 Apache Bench,您的 VPS 公共 IP 极有可能被第三方网站永久封锁。在这种情况下,您将无法使用相同的 IP 连接到该网站。 但如果您将来确实想连接到该网站,唯一的解决方案是与目标网站的系统管理员联系,或者在您的 VPS 服务提供商的帮助下创建一个具有不同 IP 的新服务器实例。

本教程中的所有测试都足够安全,并且不属于系统管理员通常所说的"系统滥用"做法。