Назад | Перейти на главную страницу

Микро-экземпляр Ec2, EBS, ввод / вывод и скорость. Как я могу повысить производительность?

У меня установлен микроэкземпляр с томом EBS. Я должен платить за миллион операций чтения / записи тома EBS.

Но по самой природе EBS ввод-вывод очень медленный, и, следовательно, такие службы, как MySql, медленные.

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

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

Экземпляры t1.micro имеют "низкую" пропускную способность ввода-вывода, но мне все еще интересно, действительно ли вы сталкиваетесь с проблемой производительности там. Есть ли у вас показатели на iowait, которые показывают, что это проблема?

Я подозреваю, что более вероятно, что тип экземпляра t1.micro не сможет выдерживать тяжелые нагрузки на процессор, подобные тем, которые могут потребоваться в вашем приложении.

Я использую t1.micro с MySQL / Apache / и т. Д. для динамических веб-сайтов, у которых почти нет пользователей, и он отлично работает, но как только вы набираете какую-либо постоянную нагрузку, он отключается, как было задумано.

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

Если вы все еще думаете, что это проблема EBS, вы можете попробовать добавить уровень кэширования, чтобы меньше обращений к базе данных MySQL. Однако вы быстро столкнетесь с ограничением памяти на t1.micro. Возможно, взгляните на новый сервис ElastiCache от AWS: http://aws.amazon.com/elasticache/

Если t1.micro IO является ограничивающим фактором, вы не собираетесь исправлять его с помощью RAID, поскольку все тома EBS в RAID будут использовать один и тот же канал ввода-вывода вместе.

Обычно люди обходят проблемы медлительности и надежности EBS, монтируя 4-10 томов EBS и объединяя их в RAID. Дает вам более стабильную производительность, а также улучшенную производительность.

Посмотрите слайды из Pinterest, ребята (2015): https://www.percona.com/live/mysql-conference-2015/sites/default/files/slides/all_your_iops_are_belong_to_usPLMCE2015.pdf

Ядро 3.13 + EXT4

Блок RAID 4K, EXT4, ядро ​​3.13 Пропускная способность записи 87 МБ / с, задержка 99-го процентиля: 124 мс

Блок RAID 64 КБ, EXT4, ядро ​​3.13 Пропускная способность записи 88 МБ / с Задержка 99-го процентиля: 122 мс

Ядро 3.18 + XFS

Блок RAID 4K, XFS, ядро ​​3.18 Пропускная способность записи 550 МБ / с, задержка 99-го процентиля: 3,7 мс

RAID-блок 64 КБ, XFS, ядро ​​3.18 Пропускная способность записи 650 МБ / с Задержка 99-го процентиля: 6,2 мс