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