【问题标题】:Recommendations for Web application performance benchmarks对 Web 应用程序性能基准的建议
【发布时间】:2008-09-03 14:55:40
【问题描述】:

我即将开始测试 Intranet Web 应用程序。具体来说,我必须确定应用程序的性能。

请有人建议我如何判断应用程序性能的正式/非正式标准。

【问题讨论】:

    标签: performance testing web-applications benchmarking


    【解决方案1】:

    使用一些工具进行压力和负载测试。如果您使用 Java,请查看 JMeter。它提供了不同的方法来测试您的应用程序性能。你应该关注:

    • 响应时间:您的应用程序对于正常请求的运行速度。测试一些读/写用例
    • 负载测试:您的应用程序在高流量时的表现。该工具将在一段时间内提交多个请求(您可以正确配置)。
    • 压力测试:你的应用可以长时间运行吗?此测试会将您的应用推向极限

    从这个开始,如果你有兴趣,还有其他种类的测试。

    【讨论】:

      【解决方案2】:

      “具体来说,我必须确定应用程序的性能......”

      这完全涉及需求问题,即您的用户社区对合理有效的期望。需求有许多组件

      1. 一般响应时间,“在负载...。站点的一般响应时间应小于 x, y% 的时间...”
      2. 特定响应时间,“在负载下......信用卡处理时间应少于 z 秒,占时间的百分比......”
      3. 系统容量项,“在负载 .... CPU|Network|RAM|DISK 下不得超过容量的 n%....”
      4. 负载配置文件,它是用户数量和将发生的事务的组合,在此条件下收集特定、客观的措施以确定系统性能。

      您会注意到响应时间和其他措施并非绝对。从 6 位 sigma 制造负责人那里可以看出,从百万分之一的例外转变为十亿分之一的例外的成本是非同寻常的,而转变为零例外的成本通常是普通组织无法承受的成本。对于您的组织而言,独特应用程序的可接受响应时间可能与面向公共互联网的应用程序的高度商品化产品完全不同。对于竞争激烈的解决方案,互联网上的响应时间预期趋​​向于 2-3 秒范围内,用户放弃率急剧上升。在过去的十年里,这个时间从 8 秒下降到 4 秒,现在下降到 2-3 秒的范围内。出于竞争原因,某些应用程序(例如 Facebook)会在不到一秒的范围内实现几乎难以察觉的响应时间。如果您正在寻找一个硬标准,它们根本不存在。

      通读几个关于风格、形式、功能的行业基准有助于您理解。

      设置一组能代表您需求的可靠性能测试并非易事。您可能需要聘请专家来处理您的 QA 工作的这一阶段。

      在您选择工具时,请确保您选择的工具可以

      • 练习你的界面
      • 根据您的要求报告
      • 您或您的团队拥有可以使用的技能
      • 您可以接受培训,并在管理层的祝福下参加

      上述四个要素中的任何一个都失败了,而且您还购买了市场上最昂贵的工具并聘请了最昂贵的公司来部署它。

      祝你好运!

      【讨论】:

        【解决方案3】:

        要测试前端,YSlow 非常适合从用户的角度获取有关页面加载所需时间的统计信息。它分解为每个特定 HTTP 请求的统计信息、所花费的时间等。获取它在 http://developer.yahoo.com/yslow/

        Firebug 当然也是必不可少的。您可以通过点击配置文件按钮显式或实时配置您的 JS。在必要时进行优化并查看所有功能需要多长时间才能运行。这改变了我衡量 JS 代码性能的方式。 http://getfirebug.com/js.html

        【讨论】:

          【解决方案4】:

          我认为真正重要的是响应时间,但我会查看的其他指标是处理器和内存使用情况与并发用户/进程的数量。我还将检查在正常负载和峰值负载下一切是否按预期执行。您可能会遇到负载较高导致应用程序错误的情况,因为各种请求相互叠加。

          如果您真的想获得详细信息,您将需要运行不同类型的负载/压力测试。您可能希望查看步进负载测试(系统上的用户随着时间的推移逐渐增加)和峰值测试(大量用户同时访问,而以前几乎没有人访问过)。我还会在服务器重新启动后立即对服务器进行测试,以查看它对系统的影响。

          您可能还想了解一个名为 HEAT(恶意环境应用程序测试)的概念。这确实显示了当系统的某些部分脱机时会发生什么。系统降级成功了吗?这应该是一个关键标准。

          我的一个非常重要的建议是在进行测试之前确定系统应该做什么。主要原因是问责制。让人们承认系统应该做某事,然后测试它是否成立。这是关键,因为人们会立即看到结果,这将是可接受的基本基准。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2011-09-12
            • 1970-01-01
            • 2016-11-01
            • 1970-01-01
            • 2014-08-15
            • 2011-02-01
            • 2015-11-20
            相关资源
            最近更新 更多