#google-cloud-platform
#google-cloud-platform
Вопрос:
У меня есть группа экземпляров с автоматическим масштабированием на GCP с 1 до 15 экземплярами. Правилом масштабирования является загрузка процессора более чем на 50%. Элементы управления масштабированием не включены. Но у меня постоянно работают все 15 экземпляров. Мониторинг показывает, что за последние 12 часов загрузка процессора 5 экземпляров превышала 80% (до 300% (сколько?)) и 10 экземпляров менее 5% загрузки процессора. Почему эти 10 экземпляров запущены, если они не используются? Я ожидаю максимум нескольких запасных экземпляров, в то время как другие полностью загружены. Но не в 2 раза больше запасных экземпляров. Почему это так работает? Как заставить его работать должным образом?
Параметры автоматического масштабирования группы следующие:
autoscaler:
autoscalingPolicy:
coolDownPeriodSec: 180
cpuUtilization:
utilizationTarget: 0.5
maxNumReplicas: 15
minNumReplicas: 1
mode: ON
scaleInControl:
maxScaledInReplicas:
fixed: 1
timeWindowSec: 60
creationTimestamp: '2020-12-04T01:46:57.815-08:00'
id: '***'
kind: compute#autoscaler
name: ***
recommendedSize: 10
selfLink: https://www.googleapis.com/compute/v1/projects/***/zones/europe-west4-a/autoscalers/***
status: ACTIVE
target: https://www.googleapis.com/compute/v1/projects/***/zones/europe-west4-a/instanceGroupManagers/***
zone: https://www.googleapis.com/compute/v1/projects/***/zones/europe-west4-a
Ответ №1:
Важно, как вы распределяете работу между вашими инстансами.
Программа автоматического масштабирования предоставляет достаточно инстансов для достижения целевого среднего уровня использования ваших инстансов. Если в вашей группе есть несколько экземпляров, которые часто используются, а некоторые простаивают, это может быть связано с логикой, которая распределяет работу между экземплярами. Горизонтальное масштабирование работает хорошо, если вновь созданные инстансы могут взять на себя часть работы с наиболее часто используемыми инстансами.
Некоторые вещи, которые нужно проверить:
- Используете ли вы балансировщик нагрузки? Исправны ли целевые виртуальные машины в соответствии с проверкой работоспособности?
- Загружается ли ваше приложение равномерно или некоторые узлы (например, лидеры) выполняют дополнительную работу.
Комментарии:
1. Мои экземпляры являются работниками GitLab. Из-за некоторых неизвестных проблем они иногда зависают при высокой загрузке процессора. Это приводит к тому, что в группе автоматического масштабирования увеличивается максимальное количество экземпляров, пока проблемные экземпляры не будут уничтожены вручную. Из-за чрезвычайно высокой загрузки процессора я даже не могу подключиться к ним по SSH и проверить, что происходит. Так что, по крайней мере, я хочу, чтобы группа не была увеличена до максимума, если есть несколько проблемных случаев.
Ответ №2:
Функция, называемая предиктивным автоматическим масштабированием, которая может быть причиной увеличения MIG с помощью показателя CPU, тем не менее, я не уверен, что в вашем кластере это включено или нет. PAS узнает, что ежедневно (или в определенный день недели) в это время наблюдается пик нагрузки, и он отреагировал соответствующим образом (даже если сегодняшний день необычный и пик не произошел). PA решают увеличить масштаб с помощью алгоритма прогнозирования.
Если вы запустите следующую команду для своего MIG «your-mig», чтобы проверить и подтвердить, что MIG будет масштабироваться из необработанной метрики
gcloud alpha compute instance-groups managed update-autoscaling GROUP
--cpu-utilization-predictive-method none
Комментарии:
1. Я не менял метод прогнозирования. Поэтому я предполагаю, что оно равно
none
по умолчанию.