【问题标题】:Determining the server hardware requirements for an enterprise web application确定企业 Web 应用程序的服务器硬件要求
【发布时间】:2015-10-05 11:40:33
【问题描述】:

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

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

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

【问题讨论】:

  • 您可能认为您将需要至少 10 倍的 CPU 和资源,但这只是猜测。您可能会发现您需要 100 倍,但您可以调整软件并发现您需要不到 10 倍。
  • 您可能还会发现数据库是一个瓶颈,这需要在不进行调整的情况下提高 10 - 100 倍。
  • 好的,但是我该如何开始做假设呢?我该如何测试这个?我们需要方法
  • 您需要创建一些负载,例如使用 Jmeter 处理请求和用户的实际工作负载。您很可能需要测试 20、40、60 .. 用户,直到系统表现不佳。此时你要么需要改进系统,要么使用更多系统。

标签: java web-applications resources server hardware


【解决方案1】:

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

  • 能够在 Y 分钟内处理 X 个客户订单
  • 能够以

一旦你的验收标准被设定,流程通常是这样的;

  1. 找出可能的使用模式/用户旅程。
  2. 编写一些测试来生成与您从 1 中的发现相匹配的流量,并编写一些测试接受标准的测试。
  3. 在具有不同并发用户数量(例如 10、100、1000)的参考硬件上运行这些测试(只需选择一些东西;实际上并不重要)。
  4. 衡量响应时间如何随着用户数量的不同而变化。

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

一旦您有一些客户在使用您的软件,您就可以获得反馈/收集有关其性能的信息。这将帮助您完善基准。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-05
    • 1970-01-01
    • 2011-04-12
    相关资源
    最近更新 更多