【问题标题】:What is a good standard metric for stability in a web application?什么是 Web 应用程序稳定性的良好标准指标?
【发布时间】:2009-04-28 12:46:56
【问题描述】:

我们目前在开发 Web 应用程序产品时面临一些稳定性问题。该产品部分由我们的合作伙伴承包商构建,我们希望有一个良好的稳定性标准指标。我们一直面临的问题是不断崩溃。 Web 应用程序无法识别何时有超过它可以处理的请求,它会建立内存(如内存泄漏),然后它会在没有任何可能恢复的情况下死掉。

我们想为我们的合作伙伴承包商编写一个非常简单的测量方法。我们想了几个主意:

  • 一个能够识别高负载请求并为服务器不可用的系统提供重试页面,直到它从高负载中恢复。
  • 设定的并发用户数或网页浏览量使我们能够明确衡量何时使用负载均衡器和缓存等可扩展性选项。

此时我们必须使用缓存和负载平衡,以便能够每 x 小时(取决于负载)回收 Web 应用程序,这样它们就不会经常死机。

感谢您的帮助。

【问题讨论】:

    标签: java web-applications tomcat stability


    【解决方案1】:

    “高负载”真的很难定义。

    确定最低可接受的服务水平对您来说要容易得多。

    1. 最小并发请求数。

    2. 处理请求的最长时间。

    3. 每小时最小请求数。

    像这样的简单服务水平易于衡量、易于模拟并且易于写入合同。任何律师或会计师都可以查看负载测试的结果,并说他们是否达到了最低要求。完全不需要深厚的技术知识。

    请注意,当您这样做时,“最小值变为最大值”。如果您说他们必须每小时至少处理 10,000 个请求,那么您的测试通常也会显示这是最大值。

    因此,请从您的业务模型中定义您的最小值和最大值。你需要多少人才能让人们快乐和富有成效?要求更多是愚蠢的。要求更少意味着用户不满意或效率低下。

    【讨论】:

    • 我要补充的一件事是确保您根据生产系统可能看到的典型用例指定负载要求。并发请求的概念通常过于模糊,无法进行可靠的负载测试。确保定义的请求包含应用程序的问题部分。
    • 有趣的一点——巧合的是——我现在应该正在编写我们的负载测试场景(而不是我在这里闲逛,这更有趣。)但是“请求”的定义很关键。我们有一个非常简短的对我们很重要的用例列表。
    • 另一个相当普遍的问题是,许多地方开始创建负载测试,以查看他们在模拟生产用例下可以处理多少容量。然而,几乎总是发生的是,他们最终在不知情的情况下创建了“压力测试”。该测试将以惊人的方式炸毁应用程序。只有修复了这些应用程序错误,您才能测量系统上的负载。如果你不做负载/压力测试,真正的生产用户会,他们不会高兴。
    【解决方案2】:

    通常,我已经看到规范中内置了这些性能类型要求...“系统应支持 x 数量的并发用户”或“每小时 x 数量的请求”。

    这些东西可以使用 LoadRunner 之类的工具轻松测试和验证,或者您可以使用 HttpUnit 之类的工具推出自己的类似负载测试器。

    【讨论】:

      【解决方案3】:

      您需要以下参数:

      1. 负载测试:

        i) 估计您的应用程序使用行为..(即)不。预期并发用户数,典型用户活动

        ii) 逐渐加载应用程序并查看 CPU 使用率、响应时间、吞吐量等参数。

      2. 可持续性:

        加载应用程序(以最佳负载)相当长的时间(12-24 小时)并查看相同的参数 cpu 使用率、错误级别等。

      您还可以尝试可扩展性,即逐步添加硬件并监控应用程序的行为。

      这应该让您对系统的行为有一个全面的了解。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-04-07
        • 2010-09-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-11-07
        相关资源
        最近更新 更多