有哪些适合 Linux 的优秀 Web 服务器基准测试工具
就Web服务器性能而言,有许多不同的因素在起作用,例如前端应用程序设计、网络延迟/带宽、Web服务器配置、服务器端内存缓存、原始硬件能力、共享托管的服务器负载等。为了在如此广泛的因素下比较和优化Web服务器性能,我们经常使用Web服务器微基准工具进行负载测试(或压力测试)。典型的基准测试工具将合成工作负载或重放到 Web 服务器的真实世界跟踪,并根据不同的指标(例如响应时间、吞吐量、每秒请求数、CPU 负载等)测量 Web 服务器的性能和可扩展性。
对于那些想要了解您的 Web 服务器或 Web 服务在不同工作负载条件下表现如何的人,这里列出了 Linux 平台上可用的 Web 服务器基准测试工具。
1.ApacheBench
ApacheBench (ab) 是与 Apache HTTP 服务器捆绑在一起的标准命令行 Web 服务器基准测试工具。它可以发送任意(并发)网络请求列表。支持 POST/PUT/GET 请求以及基本密码身份验证。测试结果包括每秒请求数、每个请求时间、传输速率、连接时间统计(最小值、最大值、中值、平均值)等。许可证:Apache v2.0。

2. Apache JMeter
Apache JMeter 是一个基于 Java 的跨平台 GUI 程序,旨在对任何 Web 应用程序进行压力测试。它可用于测试由服务器端语言(例如 PHP、Java、ASP.NET)或数据库(例如 JDBC、LDAP、MongoDB)支持的 Web 服务器后端的性能。它通过可扩展的数据可视化 GUI 提供高度可插入的测试架构。许可证:Apache v2.0。

3. 卷曲加载器
curl-loader
是一个命令行应用程序工作负载生成器,可以模拟多个 HTTP/HTTPS FTP/FTPS 客户端。模拟客户端可以执行各种任务,例如经过身份验证的登录(POST 或 GET/POST)、通过概率分布进行批量配置的 GET/POST/PUT 请求、FTP 被动/主动操作、HTTP 注销(POST、GET/POST、带 cookie 的 GET)等。每个客户端的状态和统计信息都记录到文件中。许可证:GPLv2。

4. 放克负载
FunkLoad 是一个用 Python 编写的 Web 服务器负载测试工具。它可以执行功能单元测试以及压力和寿命测试。功能包括 GET/POST/PUT/DELETE 请求、基本身份验证、cookie、带 SSL/TLS 的 HTTPS、浏览器缓存模拟和 CSS/图像/JavaScript 获取。许可证:GNU GPL。

5.加特林
Gattle 是一种与协议无关的开源负载测试工具,主要用于对 HTTP 服务器和 Web 服务进行基准测试。使用轻量级异步测试引擎,它可以轻松模拟数千个并发用户,这些用户的 Web 浏览行为和场景(例如登录、浏览产品列表、将产品添加到购物车、结帐)是独立编写的脚本。它支持通过Graphite协议实时报告,并可以通过扩展与其他第三方构建工具(如Maven、Jenkins、SBT)集成。许可证:Apache v2.0。

6. 赫特夫
Httperf 是一个 HTTP 工作负载生成器命令行工具,可以生成多种不同类型的 HTTP 流量,包括 GET/HEAD/PUT/POST 请求、HTTP 管道、SSL 流量、带 cookie 的状态会话等。输出包括连接速率、连接时间统计信息(最小值、最大值、中值、stddev)、请求/回复率和网络吞吐量。许可证:GNU GPLv2。

7. 皮洛特
Pylot 是一个基于 Python 的 Web 服务性能和可扩展性测试工具。它根据 XML 文件中定义的测试用例生成多代理工作负载场景,并实时显示统计信息和错误报告结果。它支持 HTTPS/SSL、cookie 处理、基于正则表达式的响应验证、多线程、控制台/GUI 模式。许可证:GNU GPLv3。

8. 围攻
Siege是一款针对终端环境的HTTP负载测试和基准测试工具。支持基本密码身份验证、cookie、带 SSL 的 HTTPS。许可证:GNU GPL。
9. 研磨机
Grinder 是一个基于 Java 的多线程测试框架,可以对用 Java API 编写的各种应用程序和网络协议执行负载测试和功能测试,包括 HTTP 服务器、SOAP、XML-RPC、REST Web 服务、JMS、JDBC、RMI 和 POP3/SMTP/LDAP。它支持动态加载和监控用 Jython 和 Clojure 语言编写的测试脚本,并允许以分布式方式从多台机器注入负载。它的 HTTP 支持包括 cookie 处理、SSL、连接速率限制、跟踪记录和重放、代理等。
10. 曾
Tsung 是一个开源多协议压力测试工具,可以为 HTTP、SSL、WebDAV、SOAP、PostgresSQL、MySQL、LDAP、XMPP 服务器生成不同类型的工作负载。通过 HTTP 服务器测试,它支持基本请求 (GET/POST/PUT/DELETE/HEAD)、cookie、密码或 oAuth 身份验证、SOAP、图形可视化和 HTML 报告、通过 IP 别名的多个 IP 地址等。许可证:GNU GPLv2。

11. 网络测谎仪
Web Polygraph 是一个工作负载生成器工具,可以模拟 HTTP、FTP、SSL 流量进行基准测试。它配备了 HTTP 客户端和服务器,它们一起可以对缓存代理、Web 服务器加速器、内容过滤器等进行压力测试。支持 LDAP 凭据、基本/NTLM/Kerberos 身份验证。许可证:Apache v2.0。
12. 沃克
wrk 是一个可扩展的 HTTP 基准测试工具,它利用 epoll 和 kqueue 等轻量级事件通知。支持 LuaJIT 脚本工作负载、HTTP 管道、身份验证令牌、动态请求和可自定义报告。许可证:Apache v2.0。
13. 蝗虫
Locust 是一个用于 Web 服务的开源负载测试工具。您可以使用 Python 代码在负载测试中定义用户行为,并轻松跨多个服务器部署负载测试,以模拟大量并发用户访问您的 Web 服务。 Locust 提供了一个基于 Web 的界面来监控各种性能统计数据(最小值、最大值、中值、90% 延迟、请求率、成功/失败率等)。许可证:麻省理工学院。
