AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 2107
Accepted
David Wolever
David Wolever
Asked: 2009-05-01 19:40:42 +0800 CST2009-05-01 19:40:42 +0800 CST 2009-05-01 19:40:42 +0800 CST

负载测试 HTTP 服务器的工具?[复制]

  • 772
这个问题在这里已经有了答案:
您如何为网站进行负载测试和容量规划? (5 个回答)
7年前关闭。
锁定。这个问题及其答案被锁定,因为这个问题离题但具有历史意义。它目前不接受新的答案或交互。

我不得不加载测试 HTTP 服务器/Web 应用程序几次,每次我都对能够找到的工具的质量感到失望。

那么,当您对 HTTP 服务器进行负载测试时,您使用什么工具呢?下次我必须做的时候,我最有可能做错的事情是什么?

http load-testing
  • 11 11 个回答
  • 102431 Views

11 个回答

  • Voted
  1. Best Answer
    Chad Grant
    2009-05-01T19:48:38+08:002009-05-01T19:48:38+08:00

    JMeter是免费的。

    Mercury Interactive Load Runner 超级好用而且超级昂贵。

    • 24
  2. Portman
    2009-05-01T19:57:12+08:002009-05-01T19:57:12+08:00

    我觉得非常有资格回答这个问题,因为我现在的公司需要模拟 25,000 个同时连接到我们的网络服务器(我们提供在线广告)。

    对于极高容量的负载测试,Httperf是要走的路。它是免费的,根据我们的经验,它可以在同一硬件上模拟 JMeter 或 STA 的更多同时连接。

    编辑:

    万一你好奇,我们在低功耗、廉价、超小型 Optiplex 330 上模拟每秒 3500 个请求。这些小盒子只需 280 美元,我们有一堆连接起来运行Httperf 点播。相比之下,JMeter 在这个硬件上只能推送大约 800-900 req/sec。

    • 21
  3. Stewart Robinson
    2009-05-02T00:26:25+08:002009-05-02T00:26:25+08:00

    如果您只想在 Web 服务器上一次加载单个 URL,请下载 Apache AB。它带有 Apache HTTP 服务器。

    简单的命令

    ab -n 10000 -c 10 http://serverfault.com/questions/2107/tools-for-load-testing-http-servers
    

    将运行 10000 个请求,并发 10 个用户。

    如果您想记录浏览会话,请投票并接受 jmeter 答案。Jmeter 非常棒,它可以扩展到许多可以产生巨大负载的测试机器。

    • 20
  4. Jauder Ho
    2009-05-01T22:10:04+08:002009-05-01T22:10:04+08:00

    有Tsung,一个基于 Erlang 的工具。

    在http://www.softwareqtest.com/qatweb1.html#LOAD上还有很长的工具列表

    • 8
  5. Ian Purton
    2012-02-10T09:01:38+08:002012-02-10T09:01:38+08:00

    对于快速测试,您可以使用 curls 序列和 URL 集。例如,我们要针对 Google 运行负载压力测试,我们可以运行...

    curl -s "http://google.com?[1-1000]"
    

    这将给谷歌打 1000 次电话,即

    http://google.com?1  
    http://google.com?2  
    http://google.com?3 
    ... 
    http://google.com?1000
    

    这将在如何使用 curl 快速对 Web 服务器进行压力测试中进行更详细的讨论。

    • 6
  6. Mathieu Chateau
    2009-06-11T08:08:30+08:002009-06-11T08:08:30+08:00

    您将需要设置不同的测试:

    • 正常测试,模拟用户的行为。您将实施思考时间(页面之间没有 http fury 1)。一种方法是记录网络会话,这样您将有实际的时间来完成/阅读每一页。负载将逐步到来,直到您达到生产中的平均当前负载
    • 破裂测试:和以前一样,但增加负载直到你得到第一个 http 500 错误。目标是知道你可以管理多少负载直到它崩溃
    • 长时间运行测试。您将第一个场景运行 12 小时,以确保您没有内存泄漏或性能随时间下降。

    在每次测试之后/之前,您必须像以前一样放回平台:恢复数据库,重新启动以清理内存和缓存。

    您还将实施热身:在实际测试之前启动场景一次,以便编译网页,建立与数据库的连接。否则,第一个电话在您的统计数据中总是很糟糕。

    您可以增加复杂性,例如:

    • 使用不同的场景(访客/客人、成员),它们的表现会有所不同。
    • 模拟不同的带宽访问
    • 随机搜索单词和思考时间。

    最后一件重要的事情:您必须保存所有已完成的场景才能以完全相同的方式再次制作它们,这样您就可以将性能与之前的测试进行比较。

    • 5
  7. trent
    2009-05-01T19:46:06+08:002009-05-01T19:46:06+08:00

    如果您只是想测试它如何处理多个连接,您可以使用Siege之类的东西。仍然不确定这是一个很好的衡量标准,但它至少会告诉您如何处理多个连接

    • 2
  8. rbrayb
    2009-05-01T19:51:07+08:002009-05-01T19:51:07+08:00

    我用过openSTA。

    这使用了一种相对简单的脚本语言。

    您可以轻松测试 Web 服务/服务器并编写自己的脚本。

    它允许您以任何您想要的方式将脚本放在测试中,并配置迭代次数、每次迭代中的用户数、引入每个新用户的加速时间以及每次迭代之间的延迟。将来也可以安排测试。

    它是开源和免费的。

    它会生成许多报告,这些报告可以保存到电子表格中。然后,我们使用数据透视表轻松分析和绘制结果。

    • 2
  9. JoshBerke
    2009-05-01T20:13:13+08:002009-05-01T20:13:13+08:00

    我以前使用过 LoadRunner,但它相当昂贵,我还使用了 Microsoft 的 Team Tester 版本工具,其中包括一个执行负载测试的系统。我对该工具的工作方式相当满意,您可以使用 .net 扩展测试,这是一种比 LoadRunner 更容易使用的语法。

    我们使用的负载运行器版本也无法处理我们的 AJAX 站点(这是在 2000 年,所以我确信该工具现在已经得到增强)

    • 1
  10. rmalayter
    2010-03-23T14:07:47+08:002010-03-23T14:07:47+08:00

    我们使用WAPT,效果很好。设置简单,几百块钱。LoadRUNner 的价格高得离谱,除了财富 500 强之外,其他人都无法企及。

    • 1

相关问题

  • IIS 6.0 (Windows Server 2003) 上的 HTTP 压缩

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve