繁体   English   中英

Google App Engine上的CPU带宽是否过于昂贵,或者是我的代码?

[英]Is the CPU bandwidth on Google App Engine just too expensive or it is my code?

我想对GAE读取性能进行基准测试。 从数据存储中提取了大约10,000个实体。 这些实体包含3个属性名称(大约16个字符),描述(大约130个字符)和时间戳。 没什么异常大的。

这是我看到的:

平均而言,读取10k个实体大约需要11秒。 不确定这是否被认为是快速,缓慢或合理,但不管它是不是太令人兴奋。

更有趣的发现是CPU计量。 执行此读取操作100次消耗大约3.0 CPU小时。 费用是0.30美元。

鉴于此处没有CPU密集型算法,它是否会使GAE的CPU带宽相当昂贵​​? (当然,它以Python脚本等形式提供24/7 sys-admins,但仍然......)

或者这是我的Java代码中的东西:

http://github.com/akirekadu/GAE-Evaluation/blob/master/show.jsp

这不是你的代码,我相信你的结果。 在我们自己的实验中,我们发现检索和(特别是)存储在CPU配额方面是非常昂贵的操作。

我们注意到:

  • 索引很昂贵。 如果你的写作不仅仅是阅读,那么请对你的索引吝啬。 确保您了解模型属性的indexed=False属性,并密切关注自动生成到index.yaml中的内容。

  • 如果你阅读的内容超过了你的写作,那么很多多索引可能都有意义。 尽可能使用memcache。 如果有意义,请使用实体组。

  • 应用引擎API为您提供可提高效率的工具。 它们很重要。 如果您要写100行,则使用单个批量put()与100个单独的put()调用将大大减少CPU使用。

如果您的应用程序经常按照您的描述执行大型读取,您可能希望选择不同的解决方案(例如,像Slicehost或Linode这样的VPS)或不同的数据模型。 每个应用程序都有不同的需求,WRT磁盘,CPU,内存等,所以我将后面的计算作为练习给读者。

HTH!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM