1

我一直在使用 appstats 来检查一些调用。我有一个简单的视图,可以调用 memcache 并返回结果。Appstats 告诉我总时间(总计)约为 15 毫秒。但是,我在浏览器中观察到的更像是 242 毫秒左右。实际上,我使用 apache bench 也得到了相同的结果。我尝试了另一个网络(使用 ec2 实例),看看我是否会看到不同的往返时间并得到大致相同的结果。对服务器的 ping 大约需要 13 或 14 毫秒。

我肯定在这里遗漏了一些东西。我无法解释大约 180-200 毫秒的延迟。根据使用应用程序引擎和应用程序统计的经验,我希望有人可以帮助我睁开眼睛了解我所缺少的东西。

如果有兴趣,请提供一些环境细节...... python 2.7; 在测试中同时使用了 webapp2 和 Flask;我的 apache bench 测试都是单线程的 100 次。

感谢您的任何见解。

4

1 回答 1

1

根据我的经验,您总是会看到 appstats 和总时间之间的差异。您可以在日志中看到这一点。列出总延迟的位置。Appstats 为您提供代码处理请求所花费的时间,但日志列出了总 i/o 时间。从我可以锻炼的情况来看,增加的时间归结为负载平衡以及应用程序引擎在内部对请求进行排队并评估它是否需要扩展的方式。此外,如果您发送 100 个请求的突发,您实际上可能会使差异更加明显,因为根据您的应用程序设置,它很可能会在新实例开始之前在最少实例上处理这些请求。

如果您希望您的应用程序运行良好,一个好的经验法则是让 appstats 低于 100 毫秒,其余的取决于您想烧多少钱。

会对官方线路感兴趣,但这就是我在使用应用引擎 3 年后的感觉

于 2012-10-24T06:07:20.567 回答