Группа с автоматическим масштабированием запускает экземпляры EC2, и оказывается, что экземпляры, которые работают примерно> 24 часов, начинают снижать производительность. Самый длинный из них работал 3 дня, пока я не отключил его вручную. Это кажется необычно длинным для группы с автоматическим масштабированием, когда экземпляры завершаются так часто.
В частности, загрузка ЦП User%
поднимается до 30-40% и остается на этом уровне, в то время как другие экземпляры в группе автоматического масштабирования имеют только около 10-15%. Это расходует ресурсы ЦП и ухудшает общие метрики среды EB, такие как avg. время отклика и ответы с кодом состояния 5xx.
1) Почему через 24 часа экземпляр начинает постепенно ухудшаться? Экземпляры работают Сервер синтаксического анализа (узелJS). Как я могу понять, что не так с экземпляром? Я планирую подключиться к экземпляру по SSH, когда это произойдет снова, и посмотрю на процессы с top
.
2) Как я могу автоматически завершить инстансы, которые работают дольше 24 часов? Я попытался настроить будильник Cloud Watch, но EC2> Per Instance не предоставляет метрику «работоспособности». Я мог бы установить сигнал об использовании ЦП, но я не уверен в характеристиках этой метрики для неисправных экземпляров, поэтому завершение через 24 часа кажется более безопасным.
объявление 1) Проблема может заключаться в следующем: https://github.com/parse-community/parse-server/issues/6061
В выпуске от ноября 2019 г. шаблоны запуска групп с автоматическим масштабированием имеют дополнительный параметр для автоматического завершения экземпляров по прошествии определенного времени. Вы можете прочитать об этом Вот.
Максимальный период времени, в течение которого экземпляр может находиться в эксплуатации. Если количество инстансов приближается к этому пределу, Amazon EC2 Auto Scaling постепенно заменяет их.
Вот что говорится в сообщении в блоге
Amazon EC2 Auto Scaling теперь позволяет безопасно и надежно повторно использовать инстансы в группе Auto Scaling (ASG) с регулярной частотой. Параметр Maximum Instance Lifetime помогает гарантировать, что экземпляры будут перезапущены до достижения указанного срока службы, что дает вам автоматизированный способ соблюдения требований безопасности, соответствия требованиям и производительности. Вы можете создать новую ASG или обновить существующую, включив в нее значение Максимального срока жизни экземпляра по вашему выбору от семи до 365 дней.
1) Почему инстанс начал постепенно ухудшаться через 24 часа?
Нет проблем с инстансами EC2, которые работают более 24 часов. Ваше приложение, вероятно, содержит ошибки и со временем замедляется. Возможно, есть утечка памяти, приводящая к увеличению количества подкачки?
2) Как я могу автоматически завершать инстансы, которые работают дольше 24 часов?
Есть много способов. Самый простой, вероятно, - связать сценарий оболочки с развертыванием вашего приложения, который уничтожит экземпляр через 24 часа. Вы можете сделать это с помощью такой команды, как bash -c 'bash -c "sleep 3 && echo hi" &'
. Вы можете запустить это при развертывании приложения, добавив его в командный раздел файла .ebextension в вашей версии приложения.