【问题标题】:How To Interpret Siege and or Apache Bench Results如何解释 Siege 和/或 Apache Bench 结果
【发布时间】:2011-05-04 03:55:38
【问题描述】:

我们有一个 MySQL 驱动的网站,偶尔会在 48 小时内吸引 10 万用户,所有用户都登录该网站并进行购买。

我们正在尝试使用 Apache Bench 和 Siege 等工具来模拟这种负载。

虽然在我看来关键指标似乎是并发用户数,并且我们已经获得了报告结果,但我们仍然觉得我们处于黑暗中。

我想问的是:我们应该测试什么样的东西来预测这种流量?

50 个并发用户 1000 次? 500个并发用户10次?

我们正在研究数据库错误、apache 超时和响应时间。我们还应该看什么?

这是一个模糊的问题,我知道没有“正确”的答案,我们只是在寻找一些关于如何确定我们的基础架构可以实际处理的一般性想法。

提前致谢!

【问题讨论】:

    标签: stress-testing apachebench


    【解决方案1】:

    同时用户肯定是关键因素之一——尤其是当它适用于数据库连接池等时。但您还需要验证测试的页面速率(页面/秒)是否也在您期望的范围内.如果您的测试用例中的思考时间大大减少,您可能会意外地模拟出比实际流量更高(或更低)的页面速率。思考时间是用户在页面请求之间花费的时间——阅读页面、填写表格等。

    根据您手头的其他信息,这可能有助于您计算要模拟的同时用户数: Virtual User Calculators

    最终用户看到的完整页面加载时间通常是评估系统性能的最重要指标。您还需要查找所有事务的失败率。您还应该注意永远不会完成的交易。一些测试工具不能很好地报告这些,允许模拟用户在服务器没有响应时无限期地挂起......并且不报告这种情况。寻找能够报告在给定页面或交易上等待的用户数量以及这些用户等待的平均时间的工具。

    至于要寻找的服务器端指标,您的应用基于哪些其他技术构建?您需要查看 .NET 应用程序与 PHP 应用程序的不同之处。

    最后,我们发现了解系统如何响应不断增加的负载非常有价值,而不是只关注单一级别的负载。 This article 更详细。

    【讨论】:

      【解决方案2】:

      理想情况下,您希望为用户建模您的使用情况,但为 10 万用户创建模拟并发会话通常不容易完成。 最好的来源是查看最繁忙时间的日志,并尝试找出一种方法来模拟该负载级别。

      数据库通常是基础设施的关键部分,因此我会考虑记录锁定等待的数量和长度以及 db 语句的数量和持续时间。

      另一个需要关注的关键项目是磁盘队列长度。

      该过程通常是在整个网站或特定页面中寻找缓慢的响应,然后找出原因。

      负载测试的最大问题是很难测试您的网络,如果您(大多数公共网站都这样做)通过您的 ISP 的带宽有限,则可能会产生负载测试中未反映的性能问题.

      【讨论】:

        猜你喜欢
        • 2012-01-21
        • 1970-01-01
        • 1970-01-01
        • 2011-11-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-04-10
        • 2016-02-06
        相关资源
        最近更新 更多