Мы запускаем экземпляр Mysql RDS в нескольких зонах доступности r4.2xlarge и обеспечиваем 2000 операций ввода-вывода в секунду (что стоит дополнительно 400 долларов в месяц). Когда я проверяю графики CloudWatch, я вижу большие периоды, когда Write IOPS
больше 2000, за которые мы платим:
(в рабочие дни в Великобритании IOPS выше 2000)
Есть также Read IOPS
происходящие поверх этого, которые также учитываются в Предоставленном лимите в соответствии с документация:
Общее количество операций ввода-вывода в секунду - это сумма операций ввода-вывода в секунду при чтении и записи. Типичные значения IOPS варьируются от нуля до десятков тысяч в секунду.
Есть ли объяснение, почему я получаю больше операций ввода-вывода в секунду, чем предоставил?
Я подумал:
BurstBalance
метрика в Cloudwatch для моего экземпляра, как и для не подготовленных экземпляров IOPS RDS.Provisioned IOPS
это гарантия что вы получите по крайней мере, чем много IOPS, но AWS может разрешить экземпляру использовать больше, если у хоста есть свободная емкость. Если вам не повезло, у вас может быть «шумный сосед» в том же экземпляре, что и вы, и они могут помешать вам использовать сверх выделенной суммы.
Источник данных: я поднял заявку в службу поддержки AWS, и мне сказали:
в зависимости от доступности ресурсов AWS вы сможете выйти за рамки выделенного IOPS. В конце концов, когда доступность ресурсов становится более ограниченной, количество WriteIOP выровняется до суммы, которая была предоставлена, поскольку это гарантированный предел для предоставленного тома.
(Они также предложили включить Расширенный мониторинг чтобы увидеть показатели базовой операционной системы. Я этого не делал, поэтому не знаю, как это помогает ...)
С точки зрения затрат вам будет лучше использовать диск емкостью 1 ТБ, который будет гарантировать 3000 операций ввода-вывода в секунду, но будет дешевле, чем использование небольшого диска и оплата предоставленных операций ввода-вывода в секунду.