1

如果应用程序已经在具有本地网络服务器和数据库的笔记本电脑上运行良好,那么它在部署到产品中时如何影响硬件大小?

我们是第一次试用这个应用程序,到目前为止,该应用程序在中端笔记本电脑上运行良好。

我认为任何服务器都会比笔记本电脑更强大。应该如何适当地扩展需求?

我能看到的主要影响是:

  • 数据库的位置(可能安装在单独的服务器或数据中心导致网络问题 - 不知道这是否会影响 CPU、内存规格)
  • 企业 web 容器的开销(目前使用 jetty,出于支持原因,预计将移至 tomcat)
  • 我们目前使用的是 Windows,服务器很可能在 unix 中。

不确定哪些应用程序细节是相关的,但是: - 单线程应用程序 - 主要功能是托管一个 REST 服务,该服务计算平均复杂度的算法。预计每秒最多 16 个请求 - 目前使用 Java 和 Postgre

谢谢!

4

1 回答 1

1

有几件事是无可替代的,包括在可比较的服务器硬件上进行测试和了解堆栈的性能模型。请记住,您的需求可能会随着时间而改变,而且通常情况下,拥有灵活的硬件方法(就能够将其部分移动到其他服务器而言)比拥有严格的公式更重要你需要什么。

但是,您应该了解,堆栈的不同部分有不同的需求。PostgreSQL 通常(不总是,但通常)需要快速的磁盘 I/O 和更多的处理器内核(处理器速度通常不是一个因素),而您的 Java 应用程序可能会受益于更快的内核。

以下是我的一般规则:

  1. 做一些一般性的性能分析,了解 CPU 功率消耗在哪里,以及在磁盘 I/O 上等待什么。

  2. 密切关注服务器规格。仅仅因为服务器在某些方面可能更强大并不意味着您的应用程序会在其上表现更好。

  3. 完成此操作后,请根据负载选择硬件。然后在该硬件上进行测试。

编辑:我们在Efficito关注的是 CPU 的以下内容:

  1. 缓存大小
  2. 核心
  3. GFLOPS/核心
  4. 其他性能指标

对于硬盘,我们要注意以下几点:

  1. 速度
  2. 类型
  3. RAID 设置
  4. 一般突发和持续吞吐量

请记住,您的数据库部分更可能受 I/O 限制,这意味着您从关注硬盘规格而不是 CPU 规格中获得更多,而您的应用程序代码更有可能受 CPU 限制,这意味着更好的 CPU 规格提供你更好的表现。请记住,我们正在 PostgreSQL 和 Apache 上进行 ERP 软件的虚拟化托管,因此我们通常可以在同一硬件上平衡双方。

于 2013-12-18T15:40:22.550 回答