为什么Google Cloud Build中的数据库连接速度很慢?

问题描述

我正在运行一个YII项目,该项目使用Codeception进行单元和集成测试。在我的Dockerfile中,构建的最后一步是使用RUN ./vendor/bin/codecept run

运行集成测试

我已经设置了CloudSQL并将IP地址列入白名单,以便CloudBuild可以建立与数据库的连接。

在cloudbuild.yaml中,我第一步是构建docker映像:

  - name: gcr.io/cloud-builders/docker
    args:
      - build
      - '--no-cache'
      - '-t'
      - '$_GCR_HOSTNAME/$PROJECT_ID/$REPO_NAME/$_SERVICE_NAME:$COMMIT_SHA'
      - .
      - '-f'
      - Dockerfile
      - '--build-arg'
      - environmentId=$_GCPENVIRONMENTID
    id: Build

当Docker在CloudBuild上运行集成测试RUN ./vendor/bin/codecept run时,涉及数据库连接时,它的运行速度非常慢。当我在本地计算机上对它进行基准测试时,在连接到相同的CloudSQL DB时,它的运行速度至少快了10倍。

我已竭尽所能找出问题所在。 CloudSQL运行速度很快。 Docker构建速度很快。但是由于某种原因,从CloudBuild到CloudSQL的数据库连接确实很慢。为什么呢?

测试结果

我使用2个不同的数据库进行了2次测试运行。在每次测试运行中,我都使用Cloud Build和自己的本地主机运行。作为控件,我有一个测试脚本,其中包括没有数据库交互的测试。

结果与网络连接所预期的几乎相同。这两个数据库都托管在新加坡地区。

测试1-Google Cloud SQL

  • Cloud Build-10秒至1.5分钟
  • 本地主机-1秒到4秒
  • 云构建控件-
  • 本地主机控件-

测试2-数字海洋数据库

  • Cloud Build-10秒至1.5分钟
  • 本地主机-1秒到4秒
  • 云构建控件-
  • 本地主机控件-

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)