App Engine 标准云连接 SQL 随机延迟

App Engine Standard connection to Cloud SQL Latency Randomly

我有一个我们设计的漂亮 "basic" 应用程序,它最初位于本地 plesk 服务器上,我们迁移到了 GAE/GSQL/GCS。应用引擎,mysql,云存储。

这里有一些背景信息:

应用程序基于 PHP,在本地服务器上运行良好。当我们迁移到云端时,我们会注意到发生了这种随机但极其延迟的情况。太糟糕了,应用程序超时并给出 SPDY 超时错误。我们利用 cloudflare 提供 SPDY 支持,所以我们从那里开始,他们说这是服务器。然后我们去了google。我们一直来来回回,我正在寻找其他帮助途径。

我是 运行 F2 标准 GAE 实例和 G1 小型 CloudSQL 实例(第 2 代)上的应用程序。都一样region/zone。还有一个故障转移 sql 实例。

它确实没有模式,但该应用程序的用户经常注意到错误的超时,它会在 60 秒后消失。 (它指向 PHP 超时,对吗?我们检查了代码,它在本地服务器上运行良好)

我还没有在这个应用程序上有很多流量(可能一天有几个用户)所以我不知道它是否是流量负载。以下是为您提供的一些基本统计数据:

https://imgur.com/a/U1tk5ak

一些 Google 工程师说我们的应用程序在扩展方面存在问题(QPS 永远达不到 1)

https://imgur.com/a/XWh44bm

并询问我们是否穿线。我们不是。我们也不使用内存缓存。

我也看到了很多:

https://imgur.com/a/eVSNqc3

看起来像这个错误:https://github.com/GoogleCloudPlatform/cloudsql-proxy/issues/126

但我不确定这是否全部相关。

我们已经尝试通过 Google 的技术支持,他们说我们有 "manual locks" 但我们的开发团队不同意也不知道这到底意味着什么。同样,应用程序的相同框架(会话处理等)代码在许多拥有大量用户的应用程序中使用(非 GAE,它们在 AWS 上计算)所以这是我们第一次尝试 GAE。

我们使用标准 MySQL 连接参数进行连接,并在许多应用程序中使用相同的框架,并且运行良好。我们使用所需的代理连接到 CloudSQL。

速度和持续滞后不应该存在。我们不知道这个问题可能是什么。我的问题是:

1) 你看到这里有什么问题了吗?以上所有数据库日志和摘要

2) 你能帮我理解这里可能出了什么问题吗?

谢谢!

我可以从您的屏幕截图中看到最大的延迟峰值大约是 9:00 上午 20 秒,这与您拥有最大查询量、read/write 操作和内存使用情况。

即使您有少量用户,他们也可以进行很多查询,如果 GCP 支持表明它在缩放方面存在问题,您可以检查自动缩放 属性 并查看它是否启用。

根据我从您的图像和云 SQL 文档中看到的内容,我建议 a horizontal scale 您的云 SQL 实例。

另请查看诊断问题 docs,也许您可​​以获得有关导致 MySQL 中止连接错误的原因的更多信息。

我们发现有一个查询 运行 导致了巨大的数据库滞后。