2012-04-08 58 views
2

在Java谷歌应用程序引擎,你可以打开的并发请求数/线程安全模式:https://developers.google.com/appengine/docs/java/config/appconfig#Using_Concurrent_Requests线程安全模式下的Java Google App Engine效率如何?

这样做的唯一原因是,谷歌服务器将需要旋转起来你的应用程序的实例来提高服务请求的给定数量因此可能为您节省资金。当然,这样做也意味着你将不得不编写线程安全代码。

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

+0

你好。我在这里发布了GAE的线程安全分析,这里是devcon5.blogspot.com(尽管对于GAE/J),并且非常感谢我应该讨论的任何意见或其他问题。谢谢。 – 2012-09-24 12:20:14

回答

2

这真的取决于你的代码:

  1. 在单一请求模式,你可以很容易地计算每秒请求:如果平均一个请求花费100毫秒来完成,那么一个实例将能够执行10每秒请求数。

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

    A.您所使用的类型的实例 - 据我所知,他们都是一样的,你只是得到不同数量的内核。更多内核意味着更高的并发性能

    B.请求正在执行的CPU绑定代码与IO绑定代码的比率。如果你的代码有更多的IO绑定(=等待数据存储或其他外部服务),那么CPU将能够并行运行更多的代码。

在我的应用我看到在每200毫秒的基本实例请求15-20 RPS,所以我可以说,单请求多请求模式之间的系数约为3-4。