В какой момент использование EBS является узким местом?

10

У меня есть сайт, размещенный на Amazon с использованием экземпляра EC2, поддерживаемого томом EBS. По выходным трафик увеличивается, и я делаю экземпляр больше, что немало помогает - я больше не вижу, как загруженность процессора достигает 100%, а сервер перестает отвечать на запросы.

Тем не менее, я замечаю, что чтения с диска также очень высоки (ничего не поделаешь, я не думаю), и мне интересно, в какой момент я увижу какой-то сбой, потому что диск не может сохранить вверх?

Как вы можете видеть на прилагаемом скриншоте, он увеличился до 80 МБ / мин за выходные. Кто-нибудь имеет опыт работы с AWS и знает, в какой момент мне придется перейти к экземплярам с несколькими нагрузками, поскольку EBS становится узким местом?

График использования EBS

ESW
источник
2
Я думаю, что нам нужны некоторые детали уровня приложения здесь. Что такое чтение диска? Произвольный доступ к изображениям / активам? Большие последовательные чтения (например, резервные копии базы данных или аналитика)? Обратите внимание, что вы можете запустить несколько томов EBS, подключенных к одному экземпляру, выполняя программный RAID-0, чтобы улучшить ситуацию.
rmalayter
большинство из этих операций чтения - файлы меньшего размера (менее 1 МБ, многие менее 500 КБ), но не «крошечные» файлы. Я понятия не имею, является ли это нагрузкой для тома EBS или этот объем трафика является тривальным - и не знаю, как это выяснить.
ESW
Я только что написал ответ с участием RAID и EBS, когда прочитал ваш комментарий, малайтер. Я бы добавил, что RAID10 может быть более гибким решением, так как он должен улучшить чтение и запись.
Цикодук
@tsykoduk В общем, все типы хранилищ AWS имеют несколько неочевидную производительность, и, хотя может показаться, что RAID10 может повысить производительность, действительно лучше попробовать сравнительный анализ с типами шаблонов доступа и нагрузкой, с которой может столкнуться ваше реальное приложение. , Даже в этом случае ваша производительность в среде AWS может в разы отличаться от времени по сравнению с автономным решением, где у вас больше контроля - и, следовательно, большей предсказуемости - над производительностью хранилища. Как правило, наличие более одного тома в конфигурации RAID может оказать положительное влияние.
aculich

Ответы:

5

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

Instance Type   I/O Performance
-------------   ---------------
t1.micro        Low
m1.small        Moderate
m2.xlarge       Moderate
c1.medium       Moderate
m1.large        High
m1.xlarge       High
m2.2xlarge      High
m2.4xlarge      High
c1.xlarge       High
cc1.4xlarge     Very High (10 Gigabit Ethernet)
cc2.8xlarge     Very High (10 Gigabit Ethernet)
cg1.4xlarge     Very High (10 Gigabit Ethernet)

Что касается томов EBS и производительности, которую вы получите, как показывает часто задаваемые вопросы по AWS , вам нужно будет протестировать приложение, чтобы увидеть, чего ожидать:

Вопрос: Какие задержки и пропускную способность можно ожидать от томов Amazon EBS? Задержка от экземпляра Amazon EC2 до тома Amazon EBS аналогична задержке, которую можно увидеть на локальном диске хранения экземпляра Amazon EC2. Скорость ввода-вывода может значительно варьироваться в зависимости от размера запросов, случайности шаблонов доступа и стратегии кэширования, используемой приложением. Таким образом, наиболее точным показателем является сравнение вашего конкретного приложения на томе Amazon EBS.

Это означает, что многие EBS-тарифы, которые вы получаете, не обязательно будут хуже или лучше, чем локальное хранилище экземпляров; это действительно зависит от вашего поведения доступа к данным.

Дополнительная информация на странице AWS EBS :

Производительность Amazon EBS Volume

Тома Amazon EBS обеспечивают более высокую пропускную способность, чем хранилища экземпляров Amazon EC2, для приложений, выполняющих множество случайных обращений к вашему набору данных. Вы также можете прикрепить несколько томов к экземпляру и распределить их по всем томам, чтобы добиться дальнейшего увеличения пропускной способности.

Точная производительность будет зависеть от приложения (например, случайный или последовательный ввод-вывод или большой или маленький размер запроса), поэтому лучшая мера - сравнить ваши реальные приложения с объемом. Поскольку для томов Amazon EBS требуется доступ к сети, вы увидите более высокую и стабильную производительность с более крупными экземплярами.

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

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

Кроме того, вот несколько публикаций в блоге, в которых оценивается производительность EBS и локальных (эфемерных) томов в различных конфигурациях RAID и настройки для обеспечения хорошей производительности ввода-вывода:

Эфемерные диски EC2 против томов EBS в RAID

Производительность ввода-вывода Amazon EC2: локальные временные диски и тома EBS RAID 0 с чередованием

Получение хорошего ввода-вывода от Amazon EBS

aculich
источник
2
Этот сайт, кажется, также имеет хорошую информацию: ec2instances.info
Джанфранко П.