Вытеснение ресурсов в Caila
Вытеснение ресурсов в Caila — это процесс, при котором платформа останавливает и удаляет инстансы сервисов при нехватке ресурсов, чтобы запустить новые сервисы или новые инстансы уже запущенных сервисов.
Этот механизм обеспечивает эффективное распределение ресурсов между сервисами и аккаунтами. Он предотвращает перегрузку системы и позволяет запускать новые сервисы и инстансы при ограничениях ресурсов аккаунта и ресурс-групп.
Чтобы определить, что сервис вытеснен, перейдите в раздел История событий на странице вашего сервиса.
Если сервис был вытеснен, в истории будет событие с типом ERROR
: Instance <instance_id> was evicted within <your account/resource group> scope.
Принципы вытеснения ресурсов
Вытеснение может происходить в рамках как аккаунта, так и ресурс-группы. При этом процесс проверки и вытеснения проходит поэтапно в рамках:
- лимитов ресурсов аккаунта;
- ресурс-группы (публичной или приватной).
Caila отслеживает и обновляет информацию о последнем использовании сервиса при запуске нового инстанса или при каждом обращении к сервису, например для выдачи прогноза или обучения. Это помогает системе определить «возраст» сервисов и их активность, а в дальнейшем — определить, какие сервисы требуется вытеснить.
В рамках аккаунта
Платформа старается вытеснить наименее используемые и старые сервисы. В рамках аккаунта вытеснение ресурсов ограничено теми сервисами, которые запущены пользователем.
При вытеснении учитываются лимиты аккаунта, которые пользователь может увеличить. Для этого нужно обратиться в поддержку через виджет в правом нижнем углу сайта Caila.
В публичных ресурс-группах
В публичных ресурс-группах запускаются сервисы разных пользователей. Поэтому в них важно обеспечивать эффективное использование доступных ресурсов и поддерживать баланс между старыми и новыми сервисами.
Как и в рамках аккаунта, в публичных ресурс-группах вытесняются наименее используемые и старые сервисы. Система стремится не вытеснять сервисы, которые использовались последние несколько дней. Количество дней зависит от окружения и требований. Это позволяет новым и активно используемым се рвисам иметь доступ к необходимым ресурсам.
В приватных ресурс-группах
В отличие от публичных ресурс-групп, в приватных ресурс-группах Caila предоставляет механизмы для гибкого управления сервисами и ресурсами под конкретные требования пользователя.
Процесс вытеснения в приватных группах также учитывает «возраст» и активность сервиса. При этом нет строгих ограничений по времени простоя сервиса перед его вытеснением. Это означает, что даже недавно созданные сервисы, которые были активны в течение последних нескольких дней, могут быть вытеснены, если пользователь запускает другие сервисы и ресурсов перестает хватать.
В приватных ресурс-группах владельцы сервисов могут устанавливать значение поля minInstancesCount
. Оно указывает минимальное количество инстансов, которые должны быть запущены. Caila не будет вытеснять инстансы сервиса, если это приведет к уменьшению их числа ниже указанного минимума.
minInstancesCount
доступно только при работе с сервисами через REST API.Вытеснение при обучении
При запуске нового инстанса готового (предобученного) сервиса его существующие инстансы не вытесняются. Однако во время обучения старые инстансы обучаемого сервиса могут быть вытеснены по общим правилам.
Кроме того, композитный сервис во время обучения может запустить другие, ранее неактивные сервисы. Это может привести к инициации вытеснения, включая потенциальное вытеснение самого композитного сервиса.
Как избежать вытеснен ия ресурсов
Активное использование ваших сервисов поможет уменьшить вероятность их вытеснения. Рекомендации ниже также помогут избежать вытеснения ресурсов в рамках аккаунта или ресурс-групп.
В рамках аккаунта
Следует контролировать число запущенных инстансов сервисов, а также количество потребляемых ими ресурсов.
Например, если у вас запущено пять инстансов одного сервиса, а требуется только два, остановите неиспользуемые инстансы для запуска других сервисов. То же самое относится и к потребляемым ресурсам сервиса.
Вы также можете обратиться в поддержку через виджет в правом нижнем углу сайта Caila, чтобы увеличить лимиты аккаунта.
В публичных ресурс-группах
Для предотвращения вытеснения необходимо периодически пользоваться вашими сервисами.
Вы также можете обратиться в поддержку через виджет в правом нижнем углу сайта Caila и запросить приватную ресурс-группу для большего контроля над ресурсами.
В приватных ресурс-группах
Вы можете устанавливать значение поля minInstancesCount
в зависимости от потребностей сервиса. Установка определенного значения гарантирует, что количество инстансов вашего сервиса не уменьшится ниже этого числа.
minInstancesCount
доступно только при работе с сервисами через REST API.Также вы можете контролировать размер ресурс-группы, тем самым обеспечивая достаточное количество ресурсов для запуска всех ваших сервисов. Чтобы изменить количество доступных ресурсов, обратитесь в поддержку через виджет в правом нижнем углу сайта Caila.