AWS i3.2xlarge ограничен 10K IOPS?

Я использую AWS i3.2xlarge Экземпляр EC2 с лимитом 10K IOPS. Интересно, почему это так?

Я пишу только в хранилище экземпляров NVMe. Что бы я ни делал, я не могу пройти этот предел. Я думал, что экземпляр класса I3 может пойти намного выше этого?

Есть что-то, чего мне не хватает? Нужен ли более крупный экземпляр для достижения более высокого IOPS? Прежде чем я попытаюсь подняться выше, я хотел бы понять, является ли это типичным пределом для этого экземпляра или это что-то в моем порядке?

Был ли кто-либо в состоянии достичь более высокой пропускной способности с этим типом экземпляра? Почему предел 10K IOPS? В чем причина? И как пройти над этим?

Примечание: я запускаю приложение базы данных и делаю много запросов на обновление.

3 ответа

Вы на 100% уверены, что пишете в локальное хранилище SSD?

Похоже, вы, возможно, случайно используете громкость EBS вместо этого, предел 10K IOPS предполагает, что...

Как проверить: в Amazon Linux 2 на i3.2xlarge хранилище экземпляров NVMe /dev/nvme0n1 в то время как объемы EBS /dev/xvd*, Проверьте, какое устройство смонтировано в каталоге, который вы используете / benchmarking:

[root@ip-172-31-41-210 ~]# mount
/dev/xvda1 on / type xfs (rw,noatime,attr2,inode64,noquota)
/dev/xvdba1 on /ebs-storage type ext4 (rw,relatime,data=ordered)
/dev/nvme0n1 on /local-storage type ext4 (rw,relatime,data=ordered)

Здесь у меня есть второй том EBS, смонтированный как /ebs-storage и хранилище экземпляров NVMe как /local-storage,

Обратите внимание, что диск NVMe должен быть явно отформатирован (mkfs) и смонтирован перед использованием! По умолчанию экземпляр запускается только с корневого диска, поддерживаемого EBS, и быстрый диск NVMe не используется!

Надеюсь, это поможет:)

На AWS скорость IOPS ограничена для каждого тома.

Если вам нужна более высокая пропускная способность, лучше использовать большее количество небольших томов, а не один огромный том. Затем вы можете поместить тома, например, в SW-RAID или настроить свое программное обеспечение на использование нескольких хранилищ данных.

На этой странице AWS говорится, что i3.2xlarge может выполнить 412 500 операций ввода-вывода в случайном порядке и 180000 операций записи в секунду. Для сравнения, i3.16Xlarge может выполнять 3,3 миллиона операций ввода-вывода в случайном порядке и 1,4 миллиона операций записи в секунду.

Это также говорит

Когда вы заполняете тома хранилища экземпляров на основе SSD для своего экземпляра, количество операций ввода-вывода в секунду, которые вы можете достичь, уменьшается. Это связано с дополнительной работой контроллера SSD, чтобы найти доступное пространство, перезаписать существующие данные и удалить неиспользуемое пространство, чтобы его можно было перезаписать. Этот процесс сборки мусора приводит к внутреннему усилению записи в SSD, выраженному как отношение операций записи SSD к операциям записи пользователя. Это снижение производительности еще больше, если операции записи не кратны 4096 байтам или не выровнены по границе 4096 байт. Если вы пишете меньшее количество байтов или байтов, которые не выровнены, контроллер SSD должен прочитать окружающие данные и сохранить результат в новом месте. Этот шаблон приводит к значительному увеличению усиления записи, увеличению задержки и значительному снижению производительности ввода-вывода.

Предлагаю вам запустить инструмент для сравнения, чтобы увидеть, сколько IOPS вы можете достичь - я не могу рекомендовать инструмент извините. После этого это, вероятно, случай оптимизации вашей базы данных для экземпляра. Вероятно, в Интернете есть статьи по оптимизации вашего программного обеспечения для экземпляров i3.

В противном случае совет обратиться в службу поддержки AWS - это хороший совет. Их поддержка отличная. Вы должны заплатить за их поддержку, хотя уровень разработчика не так уж и дорог.

Другие вопросы по тегам