为什么Google Appengine连接到CloudSQL这么慢

时间:2014-04-24 16:00:49

标签: google-app-engine google-cloud-sql

我发现连接到CloudSQL后端时开发和生产之间的延迟差别很大,远远超出我的预期。

我在那里进行了测试:

  1. 我获取了125,250,500,1000和2000行(行大小约为30字节)
  2. 我获取了每行20次,以获得良好的时间采样
  3. 测试在三个环境中运行:

    1. 托管appengine
    2. 本地开发模式,但通过静态IP连接到CloudSQL
    3. 本地开发模式并连接到运行MySQL的本地VM
    4. 在这里你可以看到结果: Graph of results

      现在我预计一些速度波动大约为50ms-200ms,但3-4 似乎有点高。

      我是新手,所以任何新的错误都可能导致这种情况发生?还是其他建议?我在appengine的代码上运行了一个分析器,并且调用了_apiProxy.Event"等待"吃了至少500毫秒,但没有超过750毫秒,除此之外,有任何长时间运行的电话。一些较短的跑步电话当然最终会加起来,但它不像我有一个需要调整的循环或任何东西。

      提前致谢!

1 个答案:

答案 0 :(得分:1)

首先,检查您正在使用的连接路径:您是connecting via the latest documented method吗? Cloud SQL过去的连接路径较慢,现已弃用,但仍在运行,因此您可以通过该路径进行访问。

其次,App Engine应用程序和Cloud SQL实例位于同一位置?检查Cloud SQL设置中的“首选位置”是否设置为遵循您要连接的应用引擎应用。

作为最后一种可能性,鉴于您在本地连接数据似乎不太可能,请确保您重用数据库连接,使新的连接成本很高。如果您的应用程序在本地重用连接但在App Engine端创建新连接有某种原因,则可能会产生此行为。但就像我说的那样,这个似乎不太可能。