当连接到 CloudSQL 后端时,我发现开发和生产之间的延迟存在巨大差异,比我预期的要大得多。
我进行了一个测试,其中:
- 我获取了 125、250、500、1000 和 2000 行(行大小约为 30 字节)
- 我获取了每行大小 20 次,以获得良好的时间采样
测试在三种环境中运行:
- 托管应用程序引擎
- 本地开发模式,但通过静态IP连接到CloudSQL
- 本地开发模式并连接到运行 MySQL 的本地 VM
Here you can see the results:
现在我预计速度波动约为 50ms-200ms,但约为 3-4seconds好像有点高。
我是 appengine 的新手,所以有可能导致此问题的新手错误吗?或者其他建议?我在 appengine 中的代码上运行了探查器,并且有一个对 _apiProxy.Event“wait”的调用至少消耗了 500 毫秒,但没有超过 750 毫秒,除此之外,还有任何长时间运行的调用。当然,许多较短的运行调用最终会加起来,但这并不像我有一个需要调整的循环或任何东西。
提前致谢!
首先,检查您正在使用的连接路径:您是否通过最新记录的方法进行连接 https://developers.google.com/appengine/docs/java/cloud-sql/? Cloud SQL 过去有一个连接路径,速度较慢,现已弃用,但仍然有效,因此您可以通过该路径进行访问。
其次,App Engine 应用和 Cloud SQL 实例是否位于同一位置?检查 Cloud SQL 设置中的“首选位置”是否设置为遵循您要连接的应用引擎应用。
作为最后一种可能性,考虑到您有本地连接的数据,这似乎不太可能,请确保重用数据库连接,建立新的连接可能会很昂贵。如果由于某种原因您的应用程序在本地重用连接但在 App Engine 端创建新连接,则可能会导致此行为。但正如我所说,这似乎不太可能。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)