【发布时间】:2019-07-26 21:33:02
【问题描述】:
我有一个我们设计的非常“基本”的应用程序,它最初位于本地 plesk 服务器上,然后我们迁移到了 GAE/GSQL/GCS。应用引擎、mysql、云存储。
这里有一些背景信息:
应用程序是基于 PHP 的,并且在本地服务器上运行良好。当我们迁移到云时,我们注意到发生了这种随机但极其延迟的情况。太糟糕了,应用程序超时并给出了 SPDY 超时错误。我们利用 cloudflare 进行 SPDY 协助,所以我们从那里开始,他们说这是服务器。然后我们去了谷歌。我们一直在来回走动,我正在寻找其他的帮助途径。
我正在 F2 标准 GAE 实例和 G1 小型 CloudSQL 实例(第 2 代)上运行应用程序。所有相同的区域/区域。还有一个故障转移 sql 实例。
它确实没有任何模式,但应用程序上的用户非常频繁地注意到错误的超时,并且它在 60 秒后死亡。 (这指向 PHP 超时对吗?我们检查了代码,它在本地服务器上运行良好)
我在这个应用程序上还没有大量的流量(可能一天有几个用户)所以我不知道它是否是流量负载。以下是一些基本统计数据:
一些 Google 工程师说我们的应用无法扩展(QPS 永远不会达到 1)
并询问我们是否正在线程化。我们不是。我们还没有使用 memcache。
我也看到很多这样的:
看起来像这个错误: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