php - 从 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,没有任何问题。
也许还有另一种我在文档中没有看到的连接方法?我看到很多人遇到这样的问题,没有解决办法。也许应用引擎不是正确的解决方案?
非常感谢你的帮助 !
解决方案
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,以提高网络性能。
推荐阅读
- csv - 如何使用 AWS lambda 从 S3 存储桶读取 csv 文件并将其作为新 CSV 写入另一个 S3 存储桶?蟒蛇boto3
- angular10 - 如何使用 angular10 通过 *ngFor 循环类名
- powershell - Powershell Active Directory 是用户安全组的成员显示是或否
- git - 在 Git 中调整子模块
- javascript - 在提交表单之前在表单字段中将本地时间转换为 UTC
- apache-kafka - Kafka Schemaregistry Protobuf 不支持的 STRING 类型的根模式
- ansible - Ansible yum 模块用于安装软件包列表并删除任何其他软件包
- c++ - xvalue 和 prvalue 之间的一些区别
- r - 如何在 R 版本 4.02 中安装 RQDA 版本?
- django - 在 django 中获取 url