Среда: AWS
ОС: GoldenImage-amazonLinuxV2-2021-01-04_19.43.07
Нгинкс: 1.20.0
PHP-FPM: 7.3.33
Щупальце осьминога: 6.1.1351
Старый метод
Поэтому в настоящее время мы используем простой push-скрипт для развертывания сайта PHP на 14 инстансах AWS EC2. Этот скрипт просто подключается к каждому серверу через SSH и запускает git pull в /mnt/web/public_html. После обновления кода загрузка ЦП остается стабильной на уровне 20-60%.
Новый метод
Мы пытаемся перейти на Octopus для развертывания, поскольку он более надежен.Проблема, с которой мы сталкиваемся, заключается в том, что как только код развертывается на сервере, загрузка ЦП резко возрастает до 90-100%. Это вызывает всплеск времени отклика и даже приводит к тому, что сайт выдает ошибку 502. Мы даже позволили ему поработать около 2 часов один раз, и он, кажется, никогда не падает.
График использования ЦП
Сценарий перед развертыванием:
if [ "$(get_octopusvariable "Octopus.Tentacle.CurrentDeployment.TargetedRoles")" = "веб-сервер" ]; тогда
nginx -s остановить;
sudo systemctl остановить php-fpm;
фи
Сценарий после развертывания:
chown -R ec2-user:ec2-user $(get_octopusvariable "Octopus.Action.Package.CustomInstallationDirectory");
if [ "$(get_octopusvariable "Octopus.Tentacle.CurrentDeployment.TargetedRoles")" = "веб-сервер" ]; тогда
sudo systemctl запустить nginx;
sudo systemctl запустить php-fpm;
статус sudo systemctl -l nginx;
фи
Мы попробовали отключить дельта-сжатие Octopus, следуя инструкциям здесь.
https://octopus.com/docs/deployments/packages/delta-compression-for-package-transfers
Мы также пытались отключить опцию очистки здесь:
Каталог установки Octopus
Мы также сравнили права доступа к файлам до и после. Кажется, используя старый способ, git устанавливает для папок значение 775, а для файлов — 664. Octopus устанавливает для папок значение 755, а для файлов — 644.
Любые идеи поощряются.