Как рассчитать использование цели в таблице DynamoDB?

Мы знаем минимальную, максимальную обеспеченную емкость для определенной таблицы.

Например, наша минимальная емкость составляет 200 операций чтения в секунду, а максимальная - 1000 операций чтения в секунду, так какой должен быть целевой процент использования?

1 ответ

Некоторый фон для полного ответа; DynamoDB предоставляет возможность автоматического масштабирования для управления пропускной способностью. С помощью автоматического масштабирования вы определяете минимальное, максимальное и целевое использование.

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

Целевое использование - это отношение единиц потребляемой мощности к единицам предоставленной мощности, выраженное в процентах

Хорошей отправной точкой является вопрос, почему бы не установить целевое использование на 100%? Это звучит эффективно, потому что вы будете платить только за пропускную способность, которую вы используете. Но есть проблема в этом:

Автоматическое масштабирование DynamoDB изменяет установленные параметры пропускной способности, только когда фактическая рабочая нагрузка остается повышенной (или пониженной) в течение продолжительного периода в несколько минут.

Итак, представьте, что ваше целевое использование составляет 100%, и вы увеличили спрос на свой стол в течение 15 минут. В первые 5 минут вы можете сэкономить за счет максимальной емкости, во второй партии из 5 минут вы, скорее всего, увидите сбои чтения / записи базы данных при превышении пропускной способности, а затем примерно через 10 минут должно начаться автоматическое масштабирование и увеличение пропускной способности.,

Это проблема, которую вы пытаетесь избежать, устанавливая целевое использование (то есть увеличение спроса, вызывающее удушение). Вы должны рассмотреть две вещи

1) Какое наибольшее изменение в использовании пропускной способности вы видите за период в 15 минут, выраженный в процентах? Оставьте это количество места в вашем целевом использовании.

2) Какое вам дело до того, что у вас возникнет проблема с регулированием базы данных? (т. е. некоторые операции чтения / записи в базе данных заканчиваются неудачей?) Отрегулируйте целевое использование выше или ниже в зависимости от вашего желания сэкономить средства по сравнению с регулированием.

Допустим, вы просматриваете данные за одну неделю и обнаруживаете, что за 15-минутный период самое большое увеличение пропускной способности, которое вы видите, составляет 20%. Это дает вам целевое использование в 80% (потому что тогда ваша увеличенная потребность будет поглощена автоматическим масштабированием)*. Однако давайте предположим, что вы осторожны, и вы действительно не согласны с регулированием базы данных, поэтому, чтобы быть в безопасности, вы можете пойти на 70%.

Надеюсь, это поможет принять некоторые решения. Таким образом, ваше целевое использование должно зависеть от того, насколько быстро изменяется пропускная способность и насколько вы не склонны к ограничению.

РЕДАКТИРОВАТЬ:* Математика здесь не идеальна, но вы поняли идею, я думаю. И это, вероятно, достаточно близкое приближение.

Другие вопросы по тегам