2

在 Java Google App Engine 中,您可以打开并发请求/线程安全模式:https ://developers.google.com/appengine/docs/java/config/appconfig#Using_Concurrent_Requests

这样做的唯一原因是,Google 服务器将需要启动更少的应用程序实例来服务给定数量的请求,因此可能会为您节省资金。当然,这样做也意味着您必须编写线程安全代码。

所以有趣的问题是:这会节省多少钱?有没有人试图在一些基准配置/应用程序功能/负载下测量它?

4

1 回答 1

2

这实际上取决于您的代码:

  1. 在单请求模式下,您可以轻松计算每秒的请求数:如果一个请求平均需要 100 毫秒才能完成,那么一个实例每秒可以执行 10 个请求。

  2. 在并发请求模式下,这取决于两个因素:

    A. 您使用的实例类型 - AFAIK 它们都是相同的,您只是获得不同数量的核心。更多内核意味着更高的并发性能。

    B. 请求正在执行的 CPU 绑定代码与 IO 绑定代码的比率。如果您的代码更受 IO 限制(= 等待 Datastore 或其他外部服务),那么 CPU 将能够并行运行更多代码。

在我的应用程序中,我在基本实例上看到每个请求 200 毫秒时 15-20 rps,所以我可以说单请求和多请求模式之间的因子约为 3-4。

于 2012-04-08T07:30:35.643 回答