4

在查看我的 Google App Engine/Java 应用程序的 Appstats 图表时,我有时会看到 RPC 之间似乎无法解释的时间间隔。在随附的屏幕截图中,从 for 循环对 MemcacheService.get 的两次调用之间有将近 2 秒的间隔。当我在本地运行代码时,不会出现此行为。当我的代码在 App Engine 云中运行时,如何调查此类异常的原因?

显然SO不会让我发布图片,所以这里有一个图表链接:http: //i.imgur.com/bbCXr.jpg

4

2 回答 2

1

虽然 2 秒是一个异常长的时间,但像这样无法解释的间隔通常归结为以下两个原因之一:应用程序代码或调度。

由于听起来您在这两个调用之间不太可能进行 2 秒的处理工作,因此最可能的答案是调度:您的应用程序用完了它的时间片,并且操作系统安排其他任务运行一段时间。

于 2012-06-07T04:49:33.600 回答
1

记住 App Engine 是共享主机。虽然它似乎不是超卖的共享 VPS 托管,但您仍然在运行其他站点的机器上。如果其他站点代码占用了某些资源,则可能会影响您的应用程序性能。我也不完全了解 App Engine 对哪些资源敏感,像 @Nick-Johnson 这样的人会更能告诉你这些。App Engine 的工作方式确实可以防止大多数常见问题。当我查看该图时,它在我看来就像另一个应用程序已经抓住了机器的差距。

于 2012-06-04T16:25:27.547 回答