【问题标题】:Determine Number of Supported Users for a Web Application确定 Web 应用程序支持的用户数
【发布时间】:2010-11-05 06:06:46
【问题描述】:

我正在开发一个面向商业客户的 asp.net Web 应用程序。谁能提供一些关于如何确定我的应用程序可以支持的用户数量的指南?

此外,该应用程序使用会话变量,因此它目前仅限于一台 Web 服务器,直到这种情况发生变化。

【问题讨论】:

  • 是否存在限制并发用户数量的物理限制,或者您是否希望为许可目的应用限制?在我看来,您应该允许尽可能多的用户。
  • 我想允许尽可能多的用户。但是,当潜在客户询问“您的应用程序将支持多少我的用户?”时,我想得到一个答案。
  • 我会回答“你有多少用户?”

标签: asp.net web-applications scalability


【解决方案1】:

您可以使用在第二台机器上运行的会话状态服务器或 sql server 支持的会话来解决单机问题。

至于手头的问题,除了亲手使用生产硬件、设置应用程序和运行负载测试,直到你弄清楚她在哪里崩溃,没有真正的方法可以确定。这不一定会给你真实的数字,因为你必须对用户在做什么做出假设,而且在测试环境中模拟网络云的效果几乎是不可能的。

【讨论】:

  • 只要你的对象是可序列化的,你就可以使用状态服务器或sql服务器
【解决方案2】:

只有您/您的团队可以确定可以支持的确切数字。

您的关键是深入了解您的问题领域和处理层的明显分离。

分离允许您隔离瓶颈,并更轻松地调整最低性能因素的性能,然后进入下一层/性能限制。

不要做出假设,因为您会发现与您的假设无关的影响可能会让您感到惊讶。

  1. 按比例设计
  2. 出于性能调整的原因以及您自己的理智,设计具有单独的“层” - 这也是一个更好的设计原则,这直接是开发分段​​的原因之一。
  3. 测试 – 根据设计规范对层进行“通过/失败”测试的设计只是测试的一个方面。您选择在应用程序中使用的技术、架构和工具对性能的影响回答了您的问题。计划对应用程序的每个部分进行更改以解决性能问题。
  4. 从每个“层”收集性能指标,在发现性能挑战本质时调整每个层。规划并了解如何量化每一层的性能测量。
  5. 在某些时候,您必须在性能和“酷/哇”因素之间做出妥协。每一项都会影响您推广解决方案的能力,然后您必须确定哪个影响最大。

这是我用来衡量设计质量的 PAIN 因素之一 - Plan All I增量Needs 并已在其他地方和博客中讨论过。

就个人而言,我经常会根据性能做出设计决策,但您的营销策略可能会有所不同。

【讨论】:

    【解决方案3】:

    所以您知道,只需将会话移出到 sql server 数据库,就可以使会话与多个 Web 服务器一起工作。

    提供快速操作方法here

    至于您最初的问题,我会研究负载测试。希望会有其他海报对此了解更多。我会关注页面浏览量,而不是用户。

    【讨论】:

      【解决方案4】:

      衡量应用中典型操作所需的资源(CPU、内存、磁盘、带宽)。将可用资源除以代表用户“会话”所需的资源,您就有一个粗略的数字。

      在您拥有一组好的真实数据之前,您必须对典型的使用习惯和资源需求进行猜测。这就是您在估算容量时第一次通过所能做的所有事情。

      【讨论】:

        【解决方案5】:

        一个好的负载均衡器可以确保用户返回到同一个服务器。

        【讨论】:

          猜你喜欢
          • 2010-09-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-03-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-03-14
          相关资源
          最近更新 更多