确定企业web应用程序的服务器硬件需求



我们一直在开发我们的企业应用程序的新版本,我们几乎准备好开始升级我们的客户。然而,由于一切都发生了变化(包括后端和前端),我们必须重新确定服务器端硬件需求,更重要的是,根据每天使用系统的预期用户数量,需要的核心数量和内存。

应用程序后端是用Java编写的,将运行在Wildfly 8.0.2应用服务器上。此外,这个新版本的应用程序是Ajax的重头,每个客户端可能每秒发起5个甚至更多的请求,每个请求都可能打开一个数据库连接来获取数据。

目前我们没有使用任何Java框架,如ejb或JPA,只是一个简单的基于服务的三层架构。假设同时最大工作负载为200个用户(作为示例),这将需要什么样的资源?作为参考,我认为旧的应用程序(经过反复试验)每20个用户需要大约1个核心和2GB内存。然而,这次我们想在测试之前做一个粗略的估计,然后对其进行微调。

对于自定义软件没有容量估计规则。您只需要测试它。有很多工具可以帮助你做到这一点。您可能想要创建一些接受标准,例如;

  • 在Y分钟内处理X客户订单的能力
  • 提供具有响应时间的页面Z的能力<200 ms

一旦你的验收标准设定好了,流程通常是这样的:

  1. 找出可能的使用模式/用户旅程。
  2. 编写一些测试,生成与1中的结果匹配的流量,以及一些测试验收标准的流量。
  3. 在参考硬件上运行这些测试(只需选择一些;(这并不重要)不同数量的并发用户,例如10,100,1000。
  4. 测量响应时间如何随用户数量的不同而变化。

您现在有了性能的参考点/基准。您可以说,在硬件A上,我们的软件支持B数量的并发用户,响应时间在c以下。您可以根据不同的客户需求扩展这一点;例如,如果客户估计的流量是您测试的两倍,那么您可能希望有一个服务器集群来共享负载,以保持性能。

一旦你有一些客户在使用你的软件,你就可以得到反馈/收集关于它如何执行的信息。这将帮助您改进基准测试。

最新更新