确定企业Web应用程序的服务器硬件要求

Kon*_*ine 1 java hardware resources web-applications server

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

应用程序后端是用Java编写的,将在Wildfly 8.0.2应用服务器上运行.此应用程序的新版本也是Ajax,每个客户端可能每秒启动5个甚至更多的请求,每个请求都可能打开数据库连接以获取数据.

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

Qwe*_*rky 6

自定义软件的容量估计没有规则.你只需要测试它.有很多工具可以帮助你.您可能想要创建一些验收标准,例如;

  • 能够在Y分钟内处理X客户订单
  • 能够提供页面Z,响应时间<200ms
  • 等等

一旦确定了验收标准,过程通常就是这样;

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

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

一旦您使用您的软件在野外拥有一些客户,您就可以获得反馈/收集有关其执行情况的信息.这将有助于您优化基准.