Как я могу определить, сколько IOP мне нужно для моей базы данных AWS RDS?


14

Я мигрирую часть базы данных mysql в AWS. Данные, о которых идет речь, записываются на 99%, и в каждой строке содержится около 1 тыс. Полей varchar, дата-время и 4 дюйма.

Я предполагаю, что нам потребуется от 20 до 25 тысяч записей в час в часы пик.

Я запустил iostat -h для текущей базы данных, и она выдала около 40 пакетов в секунду.

Как мне определить, какой тип IOPS мне понадобится?

Ответы:


11

Вы должны будете проверить это.

Вы можете выполнить некоторые обратные расчеты конверта, чтобы приблизить число операций ввода-вывода на одну вставку, умножить его на количество транзакций в секунду, добавить некоторую буферную комнату и т. Д., Но гораздо проще просто проверить это.

Самое простое, что нужно сделать, - это выделить лучшую догадку, а затем вернуться и увеличить или уменьшить ее, чтобы она соответствовала результатам тестирования в реальном мире. Это одно из преимуществ использования облачной среды, аппаратные изменения имеют низкую капитальную стоимость, и такие изменения обычно требуют только обновлений конфигурации. С томами EBS вы не можете просто увеличить количество операций ввода-вывода в секунду, вам также придется увеличить размер тома 1 . Вы всегда можете просто создать новый том и скопировать свои данные. Будет некоторое время простоя, но если ваши данные не велики, их не должно быть много, поскольку это будет необработанная копия.

Вот предположение о количестве необходимых операций ввода / вывода. Опять же, это всего лишь предположение, поскольку специфика зависит от количества индексов и от того, будет ли ваш поток трафика гладким или быстрым. При 25 тыс. Ткс / час вы получаете ~ 7 ткс / сек. Размер каждой строки не имеет особого значения, так как он меньше, чем размер одиночного ввода / вывода (4K). Каждая транзакция будет делать где-то между 1-5 IOP (первичная вставка плюс пара вставок дерева индексов), так что скажем ~ 35 / с.

Я говорю, начните с минимального 100 IOPS и увеличьте масштаб в случае необходимости.


1
Кстати, как продолжение этого: мы создали базу данных объемом 300 ГБ, а это означало минимум 1000 операций ввода-вывода в секунду. После 6 месяцев жизни на RDS было 0 инцидентов из-за проблем ввода-вывода. Вероятно, излишним, но как можно ближе к огню и забыть, как вы можете получить.
Крис

Исходя из вашей нагрузки - вам не нужны подготовленные IOP. Если вам не понадобится более 2500-3500 IOP, стандартное хранилище будет иметь объем 300 ГБ (из-за чередования EBS).
Росс

7

Я использовал базовый инструмент iostat (iostat -h), чтобы понять, сколько iops я сейчас использую. Исходя из этого, я экстраполировал, сколько бы я использовал, если бы я был в 4 раза меньше этого количества нагрузки и пошел с этим количеством. Для меня это сработало до 780 IOPS, поэтому я пошел с 800 IOPS.


iostat -h сообщает о 40 tps, так что это соответствует 40 iops? Это будет соответствовать числам, которые рассчитывает @sehrope.
Крис

1
Правильно.
Марк D

0

Я использую iostat для определения количества операций ввода-вывода в секунду, которые выполняет мое приложение. Iostat сообщает об этом как TPS. КБ / т помогает определить, меньше ли объем передачи, чем размер куска, 256 КиБ. Я запускаю iostat с временем ожидания в одну секунду, т.е. iostat -w 1.


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.