【问题标题】:How much more efficient is Java Google App Engine in threadsafe mode?Java Google App Engine 在线程安全模式下的效率高多少?
【发布时间】:2012-04-08 05:09:02
【问题描述】:

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

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

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

【问题讨论】:

  • 你好。我在 devcon5.blogspot.com 上发布了 GAE 的线程安全分析(尽管是针对 GAE/J),非常感谢我应该涵盖的任何 cmets 或其他问题。谢谢。

标签: java google-app-engine


【解决方案1】:

这真的取决于你的代码:

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

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-04
    • 2011-02-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多