Микроэкземпляр GCE Аномалии автомасштабирования группы

У меня есть управляемая группа экземпляров в проекте в Google Cloud Platform. Моя группа экземпляров использует самые маленькие заранее определенные машины, которые предлагает GCP, f1-micro (дополнительная информация здесь: https://cloud.google.com/compute/docs/machine-types#sharedcore )

У меня включено автомасштабирование в моей группе экземпляров со следующими настройками:

gcloud compute instance-groups managed set-autoscaling [my-ig] \
--region us-central1 \
--min-num-replicas=3 \
--max-num-replicas=15 \
--cool-down-period=250 \
--scale-based-on-cpu \
--target-cpu-utilization=0.9

У меня странное поведение, когда после небольших / коротких пиков использования ЦП автомасштабер решает массово автомасштабировать мои экземпляры, просто чтобы затем вернуться к исходному номеру a несколько минут спустя.

Вот как выглядит график ЦП моей группы экземпляров, на этом снимке экрана у группы экземпляров не было автомасштабирования, и у нее было 3 экземпляра, запускающих мое приложение:

enter image description here

Для меня эти экземпляры не похоже, что им нужно автоматическое масштабирование, они кажутся стабильными с той мощностью, которая у них есть, и на практике веб-сайт действительно работает очень хорошо.

Вот что Google говорит об этом типе экземпляра виртуальной машины:

Типы f1-микромашин предлагают возможности пакетной передачи, которые позволяют экземпляры, чтобы использовать дополнительный физический процессор на короткие периоды времени. Пакетирование происходит автоматически, когда вашему экземпляру требуется больше физический процессор, чем первоначально выделенный. Во время этих всплесков ваш экземпляр будет выгодно использовать доступные физические ЦП в пакетном режиме

Моя проблема:

  • Нормальны ли эти всплески на этом графике, учитывая, что каждый экземпляр виртуальной машины имеет 0,2 общих ЦП? Или этих всплесков не должно быть, даже если машина такая маленькая?
  • При включенном автомасштабировании автомасштабирование начинает как сумасшедшие добавлять экземпляры на каждом нарастающем фронте активности ЦП, тогда как на самом деле, если вы усредняете ЦП, не было реальные всплески использования процессора, только небольшие всплески, которые быстро стабилизировались.

Мои варианты (я думаю) следующие:

  • использовать меньше экземпляров, но большего размера
  • использовать некоторый граф стекового драйвера, который усредняет процессоры по 10-минутному среднему (слишком дорого)
  • отключить автомасштабирование и сделать это вручную
  • исправить скачки процессора в моем коде (если возможно, в случае, если это не нормальное поведение микро-виртуальных машин)
1
задан 24 May 2017 в 01:14
1 ответ

Возможно, вы столкнулись с комбинацией как пакетная способность класса экземпляра f1-micro (который может отправлять информацию об использовании ЦП экземпляра более чем на 100%), так и то, как Autoscaler обрабатывает высокую нагрузку на ЦП .

В периоды высокой загрузки ЦП, если загрузка приближается к 100 %, по оценке автомасштабирования, группа уже может быть сильно перегружена. В этих случаях средство автомасштабирования увеличивает количество виртуальных машин как минимум на 50% или как минимум на 4 экземпляра, в зависимости от того, что больше. В общем, загрузка ЦП в группе управляемых экземпляров не превышает 100%.

Я думаю, вы довольно хорошо изложили свои варианты. Я бы порекомендовал проверить, можете ли вы вообще обойтись без автомасштабирования.

Если распределение нагрузки вашего приложения коррелирует с суточным ритмом (отсутствие трафика ночью, высокая нагрузка днем), вы можете настроить размер группы экземпляров полуавтоматически (подумайте, вызов GCE API / gcloud из cron).

1
ответ дан 3 December 2019 в 23:30

Теги

Похожие вопросы