【问题标题】:App Engine Standard connection to Cloud SQL Latency RandomlyApp Engine Standard 随机连接到 Cloud SQL 延迟
【发布时间】:2019-07-26 21:33:02
【问题描述】:

我有一个我们设计的非常“基本”的应用程序,它最初位于本地 plesk 服务器上,然后我们迁移到了 GAE/GSQL/GCS。应用引擎、mysql、云存储。

这里有一些背景信息:

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

我正在 F2 标准 GAE 实例和 G1 小型 CloudSQL 实例(第 2 代)上运行应用程序。所有相同的区域/区域。还有一个故障转移 sql 实例。

它确实没有任何模式,但应用程序上的用户非常频繁地注意到错误的超时,并且它在 60 秒后死亡。 (这指向 PHP 超时对吗?我们检查了代码,它在本地服务器上运行良好)

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

https://imgur.com/a/U1tk5ak

一些 Google 工程师说我们的应用无法扩展(QPS 永远不会达到 1)

https://imgur.com/a/XWh44bm

并询问我们是否正在线程化。我们不是。我们还没有使用 memcache。

我也看到很多这样的:

https://imgur.com/a/eVSNqc3

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

但我不确定这是否都相关。

我们已经尝试通过 Google 的技术支持,他们说我们有“手动锁定”,但我们的开发团队不同意也不知道这究竟意味着什么。同样,应用程序(会话处理等)代码的相同框架用于许多拥有大量用户的应用程序(非 GAE,他们在 AWS 上进行计算),所以这是我们第一次尝试 GAE。

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

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

1) 您在这里看到任何问题吗?以上所有数据库日志及汇总

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

谢谢!

【问题讨论】:

  • 一些关于您的aborted connections 错误的文档。
  • Google 建议这根本不会影响性能。我的意思是,如果我的应用有 4-5 个用户,这是否真的相关?
  • 用户数不是关键。您每秒最多可以进行 300 个查询,并且有很多数据库文件同步。我认为您的 App Engine 实例和 Cloud SQL 实例对于您生成的数据库流量来说都太小了。尝试两者的碰撞并测量结果。

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


【解决方案1】:

我可以从您的屏幕截图中看到最大的延迟峰值大约是上午 9:00 的 20 秒,这与您的查询、读/写操作和内存使用量最多的时间差不多。

即使您的用户数量很少,他们也可以执行很多查询,如果 GCP 支持表明它在缩放时遇到问题,您可以检查自动缩放属性并查看它是否已启用。

根据我从您的图片中看到的内容以及查看 Cloud SQL 文档,我建议您使用 Cloud SQL 实例的 a horizontal scale

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

【讨论】:

  • 所以您认为答案是为只有大约 5 个用户的数据库添加只读副本?我不知道这是否是正确的答案
  • 我更新了我的答案,更详细地说明了我是如何做到的。
【解决方案2】:

我们发现有一个查询正在运行,导致数据库出现巨大延迟。

【讨论】:

    猜你喜欢
    • 2020-06-07
    • 2014-01-20
    • 2021-08-04
    • 2017-06-17
    • 1970-01-01
    • 1970-01-01
    • 2014-07-19
    • 2015-01-12
    • 1970-01-01
    相关资源
    最近更新 更多