【问题标题】:capacity planning determine whether the system could handle load容量规划确定系统是否可以处理负载
【发布时间】:2011-04-08 21:27:28
【问题描述】:

假设一个基于 Java EE 的电子商务网站在预期响应时间和吞吐量方面表现良好。该网站正在进行重大的 ui 更改,预计将带来 3 倍的流量。

如何确定现有环境是否可以处理预计的网络流量?

如果我有系统利用率(CPU、内存利用率)、吞吐量、现有系统的响应时间,有没有办法使用一些经验公式来找出它,而无需实际对系统进行负载测试。 (目标是确定是否可以在设计阶段本身满足 SLA)

【问题讨论】:

  • 您的网站的并行化程度如何?是否有任何共享资源,提示:数据库?您的新 UI 如何影响性能?
  • 该站点已经集群,其中包含两个节点。它使用共享资源,例如数据库。新 UI 会将页面大小增加 1.5 - 3 倍于当前大小。

标签: performance load-testing capacity-planning prediction


【解决方案1】:

不,这没有公式,这有太多相互依赖的因素。获得真实数字的唯一方法是通过经验测试。如果你不能做到这一点,你唯一的选择是硬件产能过剩,并做一个有根据的猜测,会是这样的:

  • 新 UI 会影响 CPU 使用率吗?
  • 渲染和传输页面是否需要更长的时间?估计并发的增加。
  • 更多的流量是否也意味着更多的数据?如果是,这对性能有何影响?
  • 是否存在可能导致并发意外增加的瓶颈?
  • 增加的并发对内存使用有何影响?
  • 内存使用如何影响文件系统缓存、数据库缓存、JPA 缓存等
  • 性能 IO 是否受限?有多少可用的备用容量?
  • 性能 CPU 是否受限?有多少可用的备用容量?
  • 您有多少内存备用容量?

【讨论】:

    【解决方案2】:

    我部分不同意前面的答案。 当然,任何容量规划都涉及创建具有一组(潜在危险)假设的模型。

    尽管如此,具有良好的历史视角:

    • 事务性负载(例如 Apache 日志上的网络点击)

    • CPU 和内存利用率

    负载性能分析可以通过分析统计技术确定“服务需求”(粗略地说是用于处理单个请求的资源量)。 然后可以将相同的参数输入到排队网络模型中,以估计预期的响应时间和吞吐量(其行为在资源高度饱和时会变得高度非线性)。

    尽管刚才说了: - 这不是一个简单的公式

    • 您需要假设新 UI 的效果是 3X 负载生成,仅此而已(对请求的相同服务需求,相同效率)

    • 您冒着遇到未建模的可能瓶颈(例如饱和连接池、网络带宽等)问题的风险,这是容量规划的一般问题。

      李>

    测试是唯一安全的选择,不幸的是,这种选择通常不可用。

    【讨论】:

      猜你喜欢
      • 2020-08-30
      • 2010-10-31
      • 2019-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-16
      • 1970-01-01
      • 2014-12-29
      相关资源
      最近更新 更多