macOS开发环境下AWS SDK for PHP初始化耗时过长问题
macOS环境下AWS SDK for PHP S3Client初始化稳定耗时18秒
- 团队基于CodeIgniter框架使用AWS SDK for PHP已有数年,此前从未出现异常
- 近期更换Mac Mini搭建本地开发环境后,SDK出现运行异常缓慢问题:调用
Aws\S3\S3Client构造函数完成初始化约需18秒,耗时极其稳定,绝大多数场景为18秒,偶有17秒的情况 - 我是团队内唯一使用macOS系统的成员,也是唯一遇到该问题的人;团队在Windows设备上搭建了完全一致的开发环境,采用相同的项目结构、相同的环境变量,Windows端通过XAMPP运行时SDK无任何异常
预期行为
SDK可在合理时间内完成初始化。
当前行为
SDK初始化耗时极长。
复现步骤
- 通过Composer安装SDK:
composer require aws/aws-sdk-php - 在项目中添加调用SDK的脚本,代码如下:
<?php use Aws\Exception\AwsException; use Aws\S3\Exception\S3Exception; class Aws_sdk { private $s3; public function __construct() { try { $t = time(); $this->s3 = new Aws\S3\S3Client([ 'version' => 'latest', 'region' => 'ap-southeast-2', 'credentials' => [ // 实际项目中已替换为正确的访问密钥 'key' => 'AWS_ACCESS_KEY_ID', 'secret' => 'AWS_SECRET_ACCESS_KEY', ] ]); printf('初始化耗时 %d 秒', time() - $t); exit; } catch (Throwable $t) { echo $t->getMessage(); exit; } } }
- 运行对应项目
运行结果显示初始化耗时稳定在17-18秒区间
补充信息
- 该问题仅在我的个人设备上出现,且覆盖本地所有接入AWS SDK的项目:本地所有调用AWS SDK的项目初始化均需18秒左右,其余设备上运行相同项目完全正常,问题可稳定复现
- 已完成的排查与修复操作:
- 搭建全新的本地开发环境
- 多次重装、重新初始化所有相关组件,包括CodeIgniter、Composer、AWS SDK、项目代码等
- 清理所有场景下的相关缓存
- 在不同设备、不同操作系统上尝试复现问题
- 已尝试官方凭证配置说明中列出的所有凭证配置方式,为简化排查链路,问题修复前暂时采用硬编码方式配置凭证
环境信息
- AWS SDK版本:3.227
- PHP版本:7.4.28
- 操作系统:macOS Monterey 12.4
- Composer版本:2.1.9(发布时间2021-10-05 09:47:38)
- CodeIgniter版本:3.1.11
内容的提问来源于stack exchange,提问作者Scott McMullan
相关产品推荐
相关产品推荐

