首页 > 解决方案 > 从 PHP PDO 应用引擎到 Cloud SQL 的连接缓慢

问题描述

我正在尝试通过云 SQL 连接将 PHP55 应用程序部署到 GAE(标准实例)。

我正在使用文档中显示的 unix_socket DSN 连接,但是到云 sql 实例的连接时间非常慢(有时可能需要 200 毫秒),并且对应用程序响应时间有严重影响(它应该在 50 毫秒内响应,但实际上有 150 毫秒的平均响应时间):

"timer (seconds)": {
            "begin": 0,
            "app": 0.043889999389648,
            "pdoinit": 0.000070095062255859,
            "pdook": 0.20270991325378,
            "pdoutf8": 0.037790060043335,
            "controller": 0.062999963760376,
            "preparequery": 0.015130043029785,
            "executequery": 0.0024099349975586,
            "return": 0.0051000118255615,
            "returnok": 0.00011014938354492
        }

这是来自 f1-micro 计算引擎实例的相同性能检查:

"timer (seconds)": {
            "begin": 0,
            "app": 0.0002980232238769531,
            "pdoinit": 0.000014066696166992188,
            "pdook": 0.0019490718841552734,
            "pdoutf8": 0.0009219646453857422,
            "controller": 0.0030989646911621094,
            "preparequery": 0.005979061126708984,
            "executequery": 0.0009448528289794922,
            "return": 0.0031609535217285156,
            "returnok": 0.000025033950805664062
        },

我的应用程序和 Cloud SQL 实例位于同一位置 ID。所以这里没有问题。

有另一个应用程序从同一区域的计算引擎访问云 SQL,没有任何问题。

也许还有另一种我在文档中没有看到的连接方法?我看到很多人遇到这样的问题,没有解决办法。也许应用引擎不是正确的解决方案?

非常感谢你的帮助 !

标签: phpgoogle-app-enginegoogle-cloud-sql

解决方案


CloudSQL 官方文档基本上指出,除了 AppEngine 文档中提到的方法(即套接字)之外,没有其他方法可以从 AppEngine 标准连接到 CloudSQL:

从 App Engine 连接到 Cloud SQL 的一般信息

从 App Engine 标准或弹性环境连接到 Cloud SQL 时,您只能使用下面链接的说明进行连接。您不能使用 IP 地址(公共或私有)从 App Engine 应用程序连接到 Cloud SQL。从 App Engine 应用程序到 Cloud SQL 的连接是安全和加密的;您不需要配置 TLS/SSL。

资源

如果它是您的应用程序的一个选项,您可以尝试计算引擎 vm 或 kubernetes 引擎,以便能够使用常规 tcp 连接。甚至可能使用私有 ip,以提高网络性能。


推荐阅读