Google app engine 如何确定性能下降的原因?

Google app engine 如何确定性能下降的原因?,google-app-engine,Google App Engine,我在玩GAE,制作了一个非常紧凑的应用程序,它以恒定的速率(从使用cURL和循环的程序中)获取微小的请求并输出微小的响应 它不处理UI,也不打算从浏览器调用,它只是接收POST请求,进行一些处理,并将灯光数据输出为ASCII文本 我已经设法对我的应用程序进行了一些优化,使平均延迟通常为20-30毫秒,到目前为止,它工作得很好。由于延迟非常低,单个实例可能每秒可以轻松管理十几个查询 然而,今天早上,在大约40分钟内,性能下降出现了一个大峰值,应用程序开始需要20000到30000毫秒来处理请求,请

我在玩GAE,制作了一个非常紧凑的应用程序,它以恒定的速率(从使用cURL和循环的程序中)获取微小的请求并输出微小的响应

它不处理UI,也不打算从浏览器调用,它只是接收POST请求,进行一些处理,并将灯光数据输出为ASCII文本

我已经设法对我的应用程序进行了一些优化,使平均延迟通常为20-30毫秒,到目前为止,它工作得很好。由于延迟非常低,单个实例可能每秒可以轻松管理十几个查询

然而,今天早上,在大约40分钟内,性能下降出现了一个大峰值,应用程序开始需要20000到30000毫秒来处理请求,请参见此处:。 在此期间,GAE应用程序代码未被更改,发出请求的程序也未被更改

我怎么知道这是什么原因,以及将来是否还会发生? 我查看了日志,没有发现任何问题,也没有办法联系谷歌

我的应用程序对延迟非常敏感,所有请求都应该尽可能快地得到处理,当然不超过1秒

我在应用程序的管理面板中将最小等待延迟设置为10ms,但是有没有办法减少请求的最大超时?我想默认是60秒


编辑:在这里我们可以看到影响的是“API调用CPU”和“活动实例”,但我不确定这如何告诉我哪里出了问题


Edit2:以下是在问题期间发生的请求的一些日志条目:

69.165.137.199 - - [23/Nov/2011:06:56:11 -0800] "POST / HTTP/1.1" 200 287 - - "app.appspot.com" ms=36378 cpu_ms=258 api_cpu_ms=98 cpm_usd=0.007259 instance=00c61b117cd98a4e8f9d6c0215d5e14c3336
69.165.137.199 - - [23/Nov/2011:06:55:32 -0800] "POST / HTTP/1.1" 200 287 - - "app.appspot.com" ms=34584 cpu_ms=125 api_cpu_ms=98 cpm_usd=0.003555 instance=00c61b117cd98a4e8f9d6c0215d5e14c3336

以下是一些可以尝试的东西:

  • 尝试以不同的名称再次部署它(使其成为新的默认名称),并查看性能是否恢复。如果它这样做了,那么可能有什么原因导致它在运行时减速
  • 检查您的数据存储有多大。在使用大型数据集进行测试时,您可能会遇到一些查询速度较慢的问题
  • 下载appstats并按照本指南进行性能评测
  • 如果您使用的是memcache,请检查您是否正在从它返回数据,而不是执行另一个数据存储查询
  • 如果您使用的是任务队列,请确保其中一个没有被卡住。您可以从管理页面手动运行它们

您是否从日志中查看了花费的时间?在CPU、挂起状态或API?中?。根据我的经验,datastore有时只是在没有明显原因的情况下这样做,所以你的应用不一定有什么问题。如果稳定延迟很重要,请尝试high replication Data Store,尽管它的最小延迟稍高。

感谢您的回复,我将尝试appstats。我的应用程序在运行时不应该变慢,因为经过大约40分钟的努力后,性能恢复了(现在它又运行得非常好)。我的数据存储很小,所以它不应该是相关的,我正在有效地(测试)使用memcache从memcache/数据存储检索数据。不使用任务队列。再次感谢!您好,谢谢,请参阅我的编辑以查找其他可能有用的信息…但我不确定从何处获得有关历史数据存储操作或任何其他信息的更多详细信息,是吗?在“日志”选项卡中,我只能看到消息(错误、信息、调试),没有任何消息是有意义的或与发生的情况有关。您可以在管理控制台中至少单击最近的日志条目,并看到以下内容:ms=57 cpu\u ms=47 api\u cpu\u ms=8 cpm\u usd=0.001365。根据您的图表,我会责怪数据存储。您好,我发现了一些在出现问题期间发生的请求日志,我添加了它们(请参见上面的Edit2)CPU和API时间较低,所以问题可能是数据存储延迟。您能在问题中包含一些缓慢请求的日志条目吗?您好,不幸的是,在这段动荡的时间里没有日志条目,没有信息或错误日志记录……真的吗?是否确实已将日志查看器设置为“所有请求”,而不是“最低严重性:错误”(默认设置)?你能粘贴之前和之后的两个日志条目吗?@Nick:Hi,谢谢你的评论,我找到了问题期间发生的请求的日志条目,我添加了它们(见上面的Edit2)