Мы только что восстановили снимок одной из наших баз данных Postgres в RDS. Экземпляр был db.t2.xlarge, и мы превратили его в db.r5.large. Он имеет том GP2 SSD объемом 100 ГБ.
Экземпляры r5.large должны быть «оптимизированы для EBS», однако у меня наблюдается удивительно низкий показатель IOPS при чтении, как показано на графике ниже.
Это результат для SELECT COUNT(*)
большой таблицы. Для того же запроса наш экземпляр t2.xlarge без проблем достигает 1250 IOPS. Похоже, что нигде больше нет узких мест: загрузка ЦП составляет примерно 0%, а памяти достаточно.
Более того, документация AWS, похоже, указывает на то, что я могу ожидать не менее 300 IOPS для тома такого размера:
GP2 разработан для обеспечения задержек в пределах единиц миллисекунд и обеспечения стабильной базовой производительности от 3 IOPS/ГБ (минимум 100 IOPS) до максимум 16 000 IOPS.
(видетьhttps://aws.amazon.com/ebs/features/)
Почему r5.large такой медленный?
решение1
решение2
IOPS зависит от размера диска: если увеличить размер диска, то и доступный IOPS увеличится.