容量计划确定系统是否可以处理负载
-
01-10-2019 - |
题
假设基于Java EE的电子商务网站的性能很好地提供了预期的响应时间和吞吐量。该网站正在进行重大的UI变化,预计将带来3倍的流量。
我如何找出现有环境是否可以处理预计的网络流量?
如果我有系统利用率(CPU,内存利用率),吞吐量,现有系统的响应时间,是否可以使用一些经验公式使用一些经验公式找到它。 (目标是确定是否可以在设计阶段本身满足SLA)
解决方案
没有这样的公式,为此,相互依存的因素太多。获得现实数字的唯一方法是通过经验测试。如果您不能做到这一点,那么您只有选择是在硬件中产生过多的能力,并做一个像这样的猜测:
- 新的UI会影响CPU使用情况吗?
- 渲染和传输页面需要更长的时间吗?估计并发增加。
- 更多的流量也意味着更多数据吗?如果是,这将如何影响性能?
- 是否有任何瓶颈可能导致并发意外增加?
- 增加的并发如何影响记忆使用情况?
- 内存使用情况如何影响文件系统缓存,数据库缓存,JPA缓存等。
- 性能IO绑定吗?还有多少备用容量?
- 性能CPU是否绑定?还有多少备用容量?
- 您有多少备用记忆能力?
其他提示
我部分不同意以前的答案。可以肯定的是,任何能力计划都涉及创建具有一组(潜在危险)假设的模型。
然而,有一个很好的历史观点:
交易负载(例如,apache日志上的Web命中)
CPU和内存利用率
可以构建负载性能分析,以确定“服务需求”(大致说明用于处理单个请求的资源的数量)通过分析统计技术。然后可以将相同的参数送入排队网络模型,以估计预期的响应时间和吞吐量(在高水平的资源饱和度上,其行为可能会变得高度非线性)。
尽管刚才说: - 这不是简单的公式
您需要假设新的UI的效果是3倍负载生成,没有其他(对请求的服务需求,相同的效率)
您可能会冒着遇到不可模型的瓶颈问题(例如饱和连接池,网络带宽等)的风险,这是容量计划的一般问题。
测试是唯一安全的选择,不幸的是,通常是不可用的选项。
不隶属于 StackOverflow