6

我刚刚为 phpunit 的 PHP Symfony2 测试设置了我的Codebuild管道。


情况:
我们的一些测试与本地数据库(经典 mysql-server)对话

Codebuild使用我们的自定义 Docker 映像,该映像基于php:5.6-apache
OS : Linux Alpine PHP VERSION : 5.6

我们执行以下步骤:

  1. 拉取资源
  2. 设置数据库(一切正常,无延迟)
  3. 作曲家安装(5 分钟
  4. php app/console doctrine:schema:update --force
  5. php app/console broadway:event-store:schema:init
  6. 启动phpUnit

在本地环境(允许 6GB RAM 的 Docker)上一切正常。
整个过程大约需要15 分钟……完美。


问题 :

当我在AWS-CodeBuild上的同一图像上启动构建时,这要长得多:

  1. 拉取资源(即时
  2. 设置数据库(即时
  3. 作曲家安装(5分钟
  4. php app/console doctrine:schema:update --force14 分钟
  5. php app/console broadway:event-store:schema:init瞬间
  6. phpUnit无限CodeBuild 超时)

假设:
似乎所有访问数据库的 php 进程都非常慢。
经典的 MySQL 请求具有“正常”的速度......

如果有人有想法?
感谢您的帮助
@Rops42

4

2 回答 2

1

我建议您首先确认您的假设 - 因为它可能是最有可能出现的问题 - 通过在构建过程中启用 MySQL 日志(错误日志、常规日志和慢查询日志)并在构建期间或之后分析它们。

如果您没有找到任何相关的内容来解释这些日志文件中的缓慢,您可以使用 Blackfire 之类的东西来分析CodeBuild中的代码,您会发现究竟是什么降低了执行速度。

于 2018-03-15T05:51:40.327 回答
0

由于使用了古老的标准容器,我的 codebuild 项目配置时间非常长。在我升级到最新的容器后,配置时间提高了 5 倍。可能与原始帖子无关,但可能会帮助那些因配置时间长而遭受代码构建性能不佳的人

于 2022-01-11T20:30:41.193 回答