0

我有一个要公开为 Web 服务 (SaaS) 的应用程序。该应用程序是 CPU 密集型应用程序,并且是一个多线程应用程序,执行需要大量时间(平均 15-20 秒)。因为,我想将其公开为 SaaS,并希望使用市场上现有的云服务,如 Amazon、Google App Engine 等,这样在扩展我的服务时所涉及的成本和工作量并不多。我有几个问题,比如:

1.)由于应用程序是多线程的,调用的线程数取决于服务抛出的结果数(所以基本上线程数是一个动态实体)。现在我有一个 6 核处理器,因此我将线程池大小保持为 6,但是由于我正在迁移到云上,我如何才能最佳地使用云基础架构?

2.)云服务提供商(哪个?)是否提供选择每个请求所需的 CPU 内核数量的选项(或类似的东西来满足我的目的)?

3.) 代码中需要哪些更改(与线程相关)?

4.) 我应该看到移动到云端的任何其他特定区域吗?

4

1 回答 1

0

在 Amazon EC2 中,您基本上是为不同类型的实例付费——您可以自由选择一个只有单核的实例和一个有十六个核心的实例。你得到你所付出的。

如何以最佳方式使用云基础架构?

你的方法很好,如果你的任务是 CPU 密集型的,那么有一个线程池,其线程数与 CPU 内核/CPU 相同。

选择每个请求所需的 CPU 内核数

不,至少不是亚马逊。您在给定的实例上运行您的应用程序,这就是您所得到的。您必须提前选择实例类型,当然您可以随时在它们之间自由切换、添加新实例等。云端!

在 Google App Engine中,您无法创建线程,因此您无法选择。另请参阅:为什么 Google App Engine 只支持单线程执行?

3.) 代码中需要哪些更改(与线程相关)?

没有任何。毕竟,这是一台标准 PC。

4.) 我应该看到移动到云端的任何其他特定区域吗?

好吧,见上文,有些服务对你来说完全没用,比如 GAE。在您实际支付某项费用之前进行一些研究。

于 2012-11-23T20:48:12.537 回答