Як я можу визначити, скільки IOP потрібно для моєї бази даних AWS RDS?


14

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

Я вважаю, що нам знадобиться між 20-25 кб записів, вставлених / годину протягом пікового часу.

Я побіг iostat -h на поточній базі даних, і вона повідомила про 40 с.

Як визначити, який тип IOPS мені знадобиться?

Відповіді:


11

Вам доведеться його протестувати.

Ви можете зробити кілька зворотних обчислень конвертів, щоб наблизити кількість вводу-виводу на вкладиш, помножити його на кількість транзакцій в секунду, додати в якусь буферну кімнату тощо, але набагато простіше просто перевірити це.

Найпростіше - це виділити найкращу здогадку, а потім повернутися та збільшити або зменшити її, щоб відповідати тестуванню реального світу. Це одна з розкішностей використання хмарного середовища, зміни апаратних засобів мають низькі капітальні витрати, і такі зміни зазвичай потребують лише оновлень конфігурації. З томами EBS ви не можете просто збільшити кількість IOPS, вам також доведеться масштабувати розмір гучності 1 . Ви завжди можете просто створити новий том і скопіювати свої дані. Буде якийсь час простою, але якщо ваших даних не так багато, не повинно бути багато, як це була б необроблена копія.

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

Я кажу, почніть з мінімуму 100 IOPS і при необхідності збільшуйте масштаб.


1
BTW, як наслідок цього: ми створили базу даних 300 Гб, і це означало мінімум 1000 IOPS. Приблизно через 6 місяців у прямому ефірі на RDS у нас сталося 0 випадків через проблеми вводу / виводу. Можливо, надмірне вбивство, але якнайближче до вогню та забудь, як тільки можеш потрапити.
chris

Виходячи з вашого навантаження - вам не потрібні ВОЗ. Якщо вам не знадобиться понад 2500-3500 загальних ІОП, стандартне сховище обійдеться в 300 Гб (із-за смуги EBS).
Росс

7

Я використовував основний інструмент iostat (iostat -h), щоб зрозуміти, скільки іопів я використовую в даний час. З цього моменту я екстраполював, скільки б я використав, якщо мені було менше 4 разів більше навантаження і пішов з цією сумою. Для мене це працювало до 780 IOPS, тому я пішов з 800 IOPS.


iostat -h повідомляє близько 40 tps, так це відповідає 40 iops? Це відповідало б цифрам, які @sehrope обчислила.
chris

1
Це правильно.
Марк D

0

Я використовую iostat, щоб визначити кількість IOPS, яку виконує моя програма. iostat повідомляє про це як tps. Кб / т допомагає визначити, чи сума переказу менша за розмір, 256 КБ. Я запускаю iostat з секундою часу очікування, тобто iostat -w 1.


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.