Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google app engine 谷歌云端点速度较慢_Google App Engine_Google Cloud Endpoints_Google Cloud Endpoints V2 - Fatal编程技术网

Google app engine 谷歌云端点速度较慢

Google app engine 谷歌云端点速度较慢,google-app-engine,google-cloud-endpoints,google-cloud-endpoints-v2,Google App Engine,Google Cloud Endpoints,Google Cloud Endpoints V2,我们刚刚迁移到GoogleCloudEndpointsV2/java8,发现延迟增加了。我们经常在跟踪中看到这种请求: https://servicecontrol.googleapis.com/v1/services/.endpoints..cloud.goog:check 大约需要14毫秒。此外,不知何故,内存使用量增加了,我们的B2前端突然开始阻塞,并经常出现10秒的延迟,这可能是连接池的问题,但不知何故,以前端点v1和java7并不存在这种情况。 同时,我们看到每个实例报告了0个错误(这

我们刚刚迁移到GoogleCloudEndpointsV2/java8,发现延迟增加了。我们经常在跟踪中看到这种请求:

https://servicecontrol.googleapis.com/v1/services/.endpoints..cloud.goog:check

大约需要14毫秒。此外,不知何故,内存使用量增加了,我们的B2前端突然开始阻塞,并经常出现10秒的延迟,这可能是连接池的问题,但不知何故,以前端点v1和java7并不存在这种情况。 同时,我们看到每个实例报告了0个错误(这不是真的,它总是在10-30秒后中止请求),并且我们无法获得任何堆栈跟踪,以查看像以前一样中止请求的位置

终止/重新启动一个实例将在一段时间内解决10s问题,但这自然不是一个解决方案


要实现v2承诺的性能改进,是否需要执行任何步骤?

使用基本API框架而不使用管理库(您提到的14ms调用是其中的一部分),您应该可以获得一些改进的延迟。v2框架中的内存使用有所增加,因为它现在合并了以前是单独服务的代码。如果您不使用API管理,我建议删除该库,看看它是否有帮助。它应该消除14毫秒的延迟,并减少内存使用量,因为您不会加载那么多的代码或数据。

TL;DR-GCE 2.0本身比GCE 1.0更快、更可靠,但不要使用API管理,否则您将返回所有这些收益,然后再返回一些。

在测试GCE2.0时,我也看到了主要的慢度问题,我不可能证明让我的用户遭受如此可怕的延迟下降是合理的,所以我开始确定到底发生了什么

我的方法如下:

我设置了一个最小可行的应用程序引擎应用程序,它只包含一个简单的API调用,使用端点1.0、端点2.0和端点2.0以及API管理返回服务器时间戳。您可以在此处看到这些的所有代码:

我将每个应用程序部署到一个单独的应用程序引擎应用程序中,并在这些链接处使用API Explorer测试API(因此您可以自己尝试):


结果如何? 以下是在每个API上快速连续的一系列请求的结果:

             GCE 1.0    GCE 2.0    GCE 2.0+AM
average       434 ms      80 ms        482 ms
median         90 ms      81 ms        527 ms
high         2503 ms      85 ms        723 ms
low            75 ms      73 ms        150 ms
正如你所看到的,没有AM的GCE2.0既快速又一致。即使是GCE1.0通常也相当快,但偶尔会有一些麻烦的异常值。AM的GCE 2.0速度总是慢得令人无法接受,只有在极少数情况下才降至“可能可以接受”的范围

请注意,所有这些时间都是从API资源管理器报告的客户端角度进行的。以下是服务器报告的同一时间段内来自App Engine仪表板的相同请求的平均值:

             GCE 1.0    GCE 2.0    GCE 2.0+AM
average        24 ms      14 ms        395 ms

所以底线是,如果您关心延迟,API管理实际上不是一个选项。如果您对如何在没有API管理的情况下运行GCE 2.0感到好奇,请确保不要遵循此处的任何说明:。

我发现了如何查看堆栈跟踪,基本上您必须在GAE日志中搜索,而不是在端点日志中搜索。从endpoints页面直接到达那里会很好。你能给我指一下没有api管理我会失去什么的文档吗?另外,示例文档提到应该使用B4_1G实例,这是非常昂贵的。这是否意味着现在只有在大型项目上才真正支持端点使用,并且应该避免在小型项目中使用端点?您会丢失云控制台、第三方身份验证和API密钥支持中端点选项卡中的数据。我会先尝试一个普通的B4实例。如果这不起作用,我认为我们需要做一些优化——不需要B4_1G实例。这个答案救了我。我疯狂地想知道为什么我的api这么慢,从应用程序中删除api管理修复了一切。