DynamoDB AutoScaling по-прежнему тормозит

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

Мое приложение получает определенные всплески в использовании, поэтому я думаю, что это идеальная вещь для использования, однако с включенным автомасштабированием я все еще получаю некоторое регулирование. Вот мои графики чтения за последние 12 часов: автомасштабирование

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

Есть ли способ сказать DynamoDB никогда не дросселировать, если он не превысит 100 (или 200 или что-то еще, что я установил в качестве верхнего предела)? Просто, если произойдет всплеск, увеличьте пропускную способность на 15 минут или что-то еще, пока всплеск не закончится?


person sfaust    schedule 20.06.2017    source источник
comment
Конечно, установите более высокую минимальную емкость. :) Говоря об этом, какие значения вы используете для этого и для вашего целевого порога? Серьезно, конечно, вы не можете использовать мощность, которой на самом деле не существует. Кроме того, похоже, что вы много сканируете, что относительно дорого с точки зрения потребления емкости.   -  person Michael - sqlbot    schedule 21.06.2017
comment
ха, ну да, я полагаю, но смысл был в том, чтобы избежать дополнительных затрат :). Я был настроен на минимум 5, максимум 200 и цель использования 70%. Я поднял использование до 50%, чтобы посмотреть, что это делает... Я посмотрю на свой код и посмотрю, какое чрезмерное сканирование я также могу делать, спасибо за совет...   -  person sfaust    schedule 21.06.2017


Ответы (1)


Автомасштабирование использует CloudWatch. Вы можете просмотреть эти предупреждения, перейдя на панель управления CloudWatch и найдя предупреждения, в описании которых есть название вашей таблицы и фраза «НЕ РЕДАКТИРОВАНИЕ И УДАЛЕНИЕ».

Почему я говорю вам это?

Ну, CloudWatch имеет минимальную гранулярность периода. В настоящее время это 1 минута. Это означает, что он будет ждать не менее 1 минуты, прежде чем запускать какое-либо событие для своих слушателей. Таким образом, пройдет не менее одной минуты после начала загрузки, пока емкость не будет увеличена. На самом деле будет даже больше, так как увеличение емкости тоже требует времени. Итог: если у вас очень большой всплеск, некоторые запросы могут быть отрегулированы, так как автоматическое масштабирование еще не вступит в силу и разрыв может быть исчерпан.

Простым, но дорогостоящим решением будет увеличение начальной емкости.

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

person Tarlog    schedule 12.07.2017
comment
Хм. API может быть идеальным, так как у меня был предыдущий скрипт для изменения пропускной способности на определенных таймерах, возможно, я мог бы просто изменить автомасштабирование на тех же таймфреймах. Однако примеры там все на Java, знаете ли вы, сейчас это только Java или вы можете сделать это с PHP? Я не вижу никаких классов автомасштабирования в PHP API... - person sfaust; 17.07.2017
comment
Я почти уверен, что прямой поддержки PHP нет. Вы можете использовать AWS CLI. Я не очень разбираюсь в PHP, но можете ли вы вызвать CLI из PHP? Я использовал этот подход для своих сценариев. - person Tarlog; 18.07.2017
comment
Хм, не уверен. У меня также есть веб-хост, поэтому я не знаю, смогу ли я установить CLI на свой хост... Спасибо за идею, однако, проверить ее... - person sfaust; 18.07.2017
comment
Если вы запускаете свои хосты в AWS (а я уверен, что так и есть) и используете Amazon Linux AMI [aws.amazon.com/amazon-linux-ami/] у вас предустановлен интерфейс командной строки AWS. - person Tarlog; 18.07.2017
comment
Нет другой хостинговой компании (хостинг InMotion...) - person sfaust; 18.07.2017