环境:AWS
OS:GoldenImage-amazonLinuxV2-2021-01-04_19.43.07
Nginx:1.20.0
PHP-FPM:7.3.33
Octopus Tentacle:6.1.1351
旧方法
因此,我们目前使用一个简单的推送脚本将 PHP 站点部署到 14 个 AWS EC2 实例。此脚本只需通过 SSH 连接到每个服务器并在 /mnt/web/public_html 中运行 git pull。代码更新后,CPU 使用率保持稳定在 20-60% 左右。
新方法
我们正在尝试切换到 Octopus 进行部署,因为它更强大。我们遇到的问题是,一旦将代码部署到服务器,CPU 使用率就会飙升至 90-100%。这会导致响应时间激增,甚至导致网站抛出 502。我们甚至让它运行了大约 2 个小时,它似乎从未下降过。
部署前脚本:
if [ "$(get_octopusvariable "Octopus.Tentacle.CurrentDeployment.TargetedRoles")" = "web-server" ]; then
nginx -s stop;
sudo systemctl stop php-fpm;
fi
部署后脚本:
chown -R ec2-user:ec2-user $(get_octopusvariable "Octopus.Action.Package.CustomInstallationDirectory");
if [ "$(get_octopusvariable "Octopus.Tentacle.CurrentDeployment.TargetedRoles")" = "web-server" ]; then
sudo systemctl start nginx;
sudo systemctl start php-fpm;
sudo systemctl status -l nginx;
fi
我们尝试了一种方法,按照此处的说明禁用 Octopus 增量压缩 https://octopus.com/docs/deployments/packages/delta-compression-for-package-transfers
我们还尝试在此处禁用清除选项: 章鱼安装目录
我们也比较了修改前后的文件权限。似乎使用旧方法,git 将文件夹设置为 775,将文件设置为 664。Octopus 将文件夹设置为 755,将文件设置为 644。
任何想法,将不胜感激。